“终端服务超出最大允许连接数”问题产生原因及解决方法

在客户端远程登录Windows2000/2003服务器的时候,有时会出现“终端服务超出最大允许连接数”的提示,然后远程登录关闭。造成该提示的原因是在Windows2000/2003中系统默认设置了最大允许远程连接的数量,如果每次连接后没有使用“注销”命令退出而是直接关闭窗口的话就会造成上面的连接依然保持,这样时间一长就会造成远程连接的数量超过了最大连接的数量,最后产生上面的错误提示。

解决的方法如下:如果已经出现该错误另外系统没有设置连接超时时间的话只能通知机房重启一下服务器了;如果设置了超时时间(后面我们会详细说明如何设置)则可以等过了设置的超时时间之后再连接就可以了。

防止产生该错误需要注意以下几点:

1. 每次退出连接的时候务必使用“注销”命令而不是直接关闭连接窗口,这一点非常重要!

2. 修改最大连接的数量以及设置结束断开连接的会话时间。前者可以设置一个最大连接的数值从而达到一个较多的范围,但通常来说不宜设置很大的数值;后者可以在非正常情况下断开连接之后,系统过一段时间自动断开该连接。

修改最大连接数的方法是:打开“终端服务配置”管理项(可以在运行中输入“tscc.msc”,也可以在控制面板的“管理工具”中打开“终端服务配置”链接),选择“连接”,然后双击打开右边的“RDP-Tcp”项,在“会话”标签中选择最上面的第一个“替代用户设置”,然后设置“结束已断开的会话”一个时间,比如15分钟,这样非正常断开的会话会在15分钟之后自动断开而不占用连接。

顺便说一句,下面的“活动会话限制”是指每次远程连接的时间,建议使用默认;“空虚会话限制”是指如果在远程连接中没有任何操作之后多长时间自动断开连接,如果你的远程连接开着然后你有事情离开电脑了,系统会自动在默认时间内断开连接,从而保证了安全。不过有的时候我们开着远程连接临时在本机查阅其他资料,有时远程连接会很“聪明”地断开,这点很讨厌,可以根据自己的实际需求在这里设置一个时间,同时可以选中第二个“替代用户设置”,然后设置达到上述限制之后直接结束会话。

可以使用下面的操作设置结束断开连接的会话时间:Windows2003中可以打开“组策略”管理项(可以在“开始”-“运行”中输入“gpedit.msc”,也可以在控制面板的“管理工具”中打开“组策略”链接),依次打开“计算机配置”-“管理模板”-“Windows组件”-“终端服务”,然后双击打开右边的“限制连接数量”项,选择“已启用”然后设置一个数值,这里建议不要超过10。Windows2000中没有上面的策略项,可以在上面修改最大连接数的方法中打开的“RDP-Tcp属性”对话框中的“网卡”标签中设置。

需要特别注意的是,上面的所有更改对于当前的这次远程连接是无效的。

3. 如果是Windows2003系统的话,可以强制每个帐户使用一个会话,这样如果断开重新连接的时候会接着前面断开的连接。设置方法是:打开“终端服务配置”管理项(具体方法见上),在“服务器配置”中启用“限制每个用户使用一个会话”。

另外如果前面的连接非正常中断,等到重新连接之后可以手动将前面断开的连接注销掉。打开命令行窗口,输入query user查询当前连接服务器的用户,然后使用 logoff #id注销断开的连接。

举例如下:

C:\Documents and Settings\user1>query user
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
>user1 rdp-tcp#6 5 运行中 . 2007-11-2 10:21
>user1 rdp-tcp#7 6 . 2007-11-2 11:05
C:\Documents and Settings\user1>logoff 6

C:\Documents and Settings\user1>query user
USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
>user1 rdp-tcp#6 5 运行中 . 2007-11-2 10:21

如果是在Windows2003中操作更直观,在“任务管理器”中的“用户”标签中会直接显示当前连接的用户情况,右键选中的用户可以对其进行注销操作。

参考资料:
解决Windows 2000 Windows 2003终端服务器超出最大允许链接数的问题

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注