严超 2.0 菠萝阁

Yan chao 2.0 Official Blog

        教育、科研、技术、学习……从一个计算机教育工作者的角度看技术

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何避免出现“终端服务器超出了最大允许连接数”

Posted on 2009-05-07 14:17  Yan Chao  阅读(1917)  评论(0编辑  收藏  举报

使用远程桌面链接登录到终端服务器时经常会遇到“终端服务器超出最大允许链接数”诸如此类错误导致无法正常登录终端服务器,引起该问题的原因在于终端服务的缺省链接数为2个链接,并且当登录远程桌面后如果不是采用注销方式退出,而是直接关闭远程桌面窗口,那么实际上会话并没有释放掉,而是继续保留在服务器端,这样就会占用总的链接数,当这个数量达到最大允许值时就会出现上面的提示。
  解决方式:
  一、用注销来退出远程桌面而不是直接关闭窗口
  二、限制已断开链接的会话存在时间
  三、增加最多链接数,即设置可连接的数量多些
第三可采用如下几种方式来修改:
1.从终端服务配置中修改:
打开管理工具里的终端服务配置,再单击连接,双击右边的RDP-Tcp,弹出RDP-Tcp属性,选择网卡,可设置最多连接数,或者设置为无限制的连接数。当然这个值不也能太大,否则会占用较多的系统资源。不过这里修改的值好像不起作用,设置成无限制时照样还是会出现本文所说的情况。
修改会话存在时间:运行-tscc.msc-连接-双击RDP-Tcp或右击-属性-会话-选中第一个的替代用户设置(O)-结束已断开的会话[将默认值“从不”改为一个适当的时间,比如30分钟]
  
2.打开“控制面板”,双击“添加删除程序”,单击“添加删除Windows组件”*“组件”
,在Windows组件向导对话框中选中“终端服务” * “下一步” * “应用服务器” * “下
一步”,然后按照提示即可改变终端服务的模式。
不过听说用此法,改了应用需要许可证,90天后过期:(

3.win2003的话可以从组策略修改:
  组策略级别要高于终端服务配置,当启用组策略后终端服务配置中的相应选项会变成灰色不可修改
  运行-gpedit.msc-计算机配置-管理模板-Windows组件-终端服务
  双击右边的”限制连接数量“-选择”已启用“-填入允许的最大连接数


=====================

终端服务器超出了最大允许连接数的解决办法
1、首先你可以telnet到此主机上(不管你用哪种方法),当然如果能直接操作机器更好,不过直接操作就不必用命令行了,用控制台更直观,这里不是我们讲述的问题,略过。
2、Telnet上去后,先看登陆的用户:
输入命令:query user
系统返回:
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
administrator console   0 运行中 .  2004-10-09 15:37
user1 UserMachine1   1 运行中 .  2004-10-09 15:37
user2 12 已断开 无 2004-10-09 15:37

此时可以看出的可能根我们的不一样,根据具体情况而定。
看到吗? ID 0 的用户是本地登陆的,ID 1 和 ID 12是3389登陆的用户,前者在运行中,后者已经断开了,但是断开了仍然占用系统资源和通道,我们要把它踢掉。如下进行操作即可。
输入命令:logoff 12
C:\>query user //再看看
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
administrator console 0 运行中 . 2004-10-09 15:37
user1 UserMachine1   1 运行中 .  2004-10-09 15:37

3、如果服务器关闭了telnet功能(这是默认的),还可以通过SqlServer的xp_cmdshell扩展存储过程,使用格式:master.dbo.xp_cmdshell '命令内容',其余可参考第二步。此方式要求有访问xp_cmdshell的权限。