主机头

 找回密码
 立即注册
查看: 2084|回复: 1
打印 上一主题 下一主题

终端服务器超出了最大允许连接数解决办法

[复制链接]

879

主题

2

好友

5477

积分

管理员

Rank: 9Rank: 9Rank: 9

跳转到指定楼层
楼主
发表于 2012-11-27 20:24:21 |只看该作者 |正序浏览
1、找到一台能连上网络的windows2003的机器
2、开始–运行–输入“tsmmc.msc”,跳出一个远程桌面控制台
3、右键点击左边的“远程桌面”,选择“新建远程桌面”,按照要求填写要连接的虚拟主机的ip、用户名、密码、域名,然后点击“确定”
4、点击新建好的远程桌面,就可以登陆到远程虚拟主机了
扫尾工作:
1、登陆到远程虚拟主机后,打开“任务管理器”,选择“用户”,踢掉那2个留在系统中的用户
2、开始-运行-gpedit.msc-计算机配置-管理模板-windows组件-终端服务-会话,右边窗口选择“为断开的会话设置时间限制”-选择已启用,设置一个时间
w
in2K/win2003终端服务器超出最大允许连接数的问题

今天管理一台服务器,远程连接时帐号密码都输入完后,点连接后弹出一个 “终端服务器超出最大允许连接”。上网查了一下归结一下出现这
种情况的原因和解决办法。
原因:用 远程桌面链接登录到终端服务器时经常会遇到“终端服务器超出最大允许链接数”诸如此类错误导致无法正常登录终端服务器,引起
该问题的原因在于终端服务的缺 省链接数为2个链接,并且当登录远程桌面后如果不是采用注销方式退出,而是直接关闭远程桌面窗口,那么
实际上会话并没有释放掉,而是继续保留在服务器端, 这样就会占用总的链接数,当这个数量达到最大允许值时就会出现上面的提示。
如何避免?
一、用注销来退出远程桌面而不是直接关闭窗口
二、限制已断开链接的会话存在时间
1、从终端服务配置中修改
运行-Tscc.msc(终端服务配置)-连接-双击RDP-Tcp或右击-属性-会话-选中第一个的替代用户设置(O)-结束已断开的会话[将默认值“
从不”改为一个适当的时间,比如30分钟]
2、从组策略修改
开始-运行-gpedit.msc-计算机配置-管理模板-windows组件-终端服务-会话
右边窗口选择 为断开的会话设置时间限制 -选择已启用,选择一个时间
三、增加最多链接数
1、 从终端服务配置中修改:运行-Tscc.msc(终端服务配置)-连接-双击RDP-Tcp或右击-属性,选择“网卡”选项卡-修改“最大连接数”
改成你 所需的值,当然这个值不也能太大,否则会占用较多的系统资源。不过这里修改的值好像不起作用,设置成无限制时照样还是会出现本
文所说的情况。
2、组策略级别要高于终端服务配置,当启用组策略后终端服务配置中的相应选项会变成灰色不可修改
运行-gpedit.msc-计算机配置-管理模板-Windows组件-终端服务
双击右边的”限制连接数量“-选择”已启用“-填入允许的最大连接数
四、改变远程终端模式
打开“控制面板”,双击“添加删除程序”,单击“添加删除Windows组件”,“组件”,在Windows组件向导对话框中选中“终端服务” , “
下一步”,“应用服务器”,“下一步”,然后按照提示即可改变终端服务的模式。
Windows 2000终端服务有2种运行模式: 远程管理模式和应用程序服务器模式。远程管理模式允许系统管理员远程管理服务器,而且只允许2个
终端会话同时登录终端服务器。应用程序服务器模式允许用户 运行一个以上应用程序,允许多个用户从终端登录访问服务器。但是,应用终端
服务的用户必须有终端服务授权,即必须在90天之内在这个域或工作组中设置终端 服务授权服务器,否则用户需删除应用程序,然后再重新安
装。
五、修改本地安全策略
控制面板>>管理工具>>本地安全策略>>本地策略>>安全选项>>
1、先找到>>Microsoft网络服务器:在挂起会话之前所需的空闲时间
默认为:15分钟,改为自己所需要的时间(就是登陆后无动作空闲超过多少时间后自动断开)
2、然后找到>>网络安全:在超过登录时间后强制注销。默认为:已禁用,一定要改为:已启用
如果已经发生解决办法:
1、首先你可以telnet到此主机上(不管你用哪种方法),当然如果能直接操作机器更好,不过直接操作就不必用命令行了,那当然是知道机器超
级管理员的密码的情况下,可以使用OpenTelnet来打开远程服务器的Telnet端口。
2、Telnet上去后,先看登陆的用户:
输入命令:query user
系统返回:
C:>query user
USERNAME?SESSIONNAME?ID?STATE?IDLE TIME?LOGON TIME
k12update?console?1?运行中?2007-3-14 14:57
此时可以看出的可能都不一样,根据具体情况而定。
ID 0 的用户是本地登陆的,ID 1 和 ID 12是3389登陆的用户,前者在运行中,后者已经断开了,但是断开了仍然占用系统资源和通道,我们要把
它踢掉。如下进行操作即可。
输入命令:logoff 1
3、如果服务器关闭了telnet功能(这是默认的),还可以通过SqlServer的xp_cmdshell扩展存储过程,使用格式:master.dbo.xp_cmdshell '
命令内容',其余可参考第二步。此方式要求有访问xp_cmdshell的权限
上面的解决办法基本没有用 后来我用 服务器终端服务器超出最大允许连接数时,以前考虑用冷启动服务器,但这样必须跑一趟机房,最近发
现最好的办法就是在“运行”命令行里输入:mstsc /console /v:你的服务器IP:远程端口

『情景描述』
1.在登录远端Windows2003服务器的时候,出现"终端服务器超出最大允许连接数"错误,导致管理员无法登录服务器进行远程管理。
2.服务器统一放在公司信息中心管理,而且没有外接显示器,所以,最好能进行远程管理、解决该问题。
----==很拽的分割线==-------=======knityster -=编织者=======------很拽的分割线------======------
『解决过程』
1.首先想到的当然是搜索引擎,谷歌后的结果大概如下:
以下内容来自网络,版权归原作者所有

类似问题发生是因为remote desktop for administrator缺省设置是2个连接,而且如果远程登录后不注销而直接关闭远程桌面,实际上session还留在服务器端,所以再次连接就很容易出现上面的提示。如果您使用terminal登录的话,到控制台登录一下,远程的登录用户自动被注销。解决办法一是用注销来关闭远程桌面,二是限制已经断开连接的session存在的时间,三是增加连接数。
后两种方法分别有两种方式来修改,具体步骤您能能参考下面的信息:
方法1. 修改terminal services configuration
1.点击Start\Control Panel\Administrative Tools\Terminal Services Configuration
2.左边选择connections后双击右边的RDP-Tcp,打开属性设置对话框
3.选择sessions标签,选中第一个override user settings,修改end a disconnected session的时间,例如30分钟,这样,当断开连接后30分钟内没有再次连接的话,系统就会自动结束这个session。
4.选择network adapter,修改maximum connections,缺省是2,改成你想要的数字,不过也不宜过大,否则占用系统资源也比较大。
方法2. 修改Group Policy
1.点击Start\Run\gpedit.msc
2.Computer Configuration\Administrative Templates\Windows Components\Terminal Services
3.双击limit number of connections打开设置对话框,选择Enabled,在TS maximum connections allowed中添入最大连接数目
4.左面Terminal Services\Sessions
5.双击Set time limit for disconnected sessions,选择Enabled,在End a disconnected session中选择时间

2.以上方法设置都是正确的,只是现在我无法远程登录到远程系统了,同时也无法直接登录到该服务器,所以以上操作都无法进行。囧
3.继续查找,终于发现了解决办法,说明如下:
----==很拽的分割线==-------=======knityster -=编织者=======------很拽的分割线------======------
『 解决办法』
以如下命令形式即可解决超过最大连接数问题
运行 mstsc /v:IP /console ,比如
mstsc /v:211.211.0.5 /console
就可以连接到远程系统的的会话。
----==很拽的分割线==-------=======knityster -=编织者=======------很拽的分割线------======------
『相关内容』
1.mstsc命令行工具的参数官方说明(摘自官方帮助文档):
远程桌面连接”命令行的句法
语法
mstsc [<connection file>] [/v:<server[:port]>] [/console] [/f[ullscreen]] [/w:<width>] [/h:<height>] [/public] | [/span] [/edit "connection file"] [/migrate] [/?]
“远程桌面连接”的命令行参数
参数说明/v:<server[:port]>指定要连接的远程计算机。/console将您连接到在运行 Windows Server 2003 的服务器或安装了终端服务器角色服务的服务器的控制台中登录的会话。/f以全屏模式启动“远程桌面连接”。/w:<width>指定“远程桌面连接”窗口的宽度。/h:<height>指定“远程桌面连接”窗口的高度。/public以公共模式运行远程桌面连接。/span使远程桌面的宽度和高度与本地虚拟桌面相匹配,如有必要,扩展到多个显示器。要扩展到多个显示器,所有显示器必须具有相同的高度并垂直排列。/edit打开指定的 .rdp 连接文件进行编辑。/migrate将使用客户端连接管理器创建的旧连接文件迁移到新的 .rdp 连接文件。/?列出这些参数
如下图



2.官方帮助文档对/console参数的说明
连接到远程计算机的控制台会话
在此版本的远程桌面连接中,如果远程计算机上安装了终端服务器角色服务,mstsc /console 将:
  • 仅针对此连接禁用终端服务客户端访问授权 (TS-CAL)。
  • 仅针对此连接禁用时区重定向。
  • 仅针对此连接禁用 TS 会话目录重定向。
若要使用已安装的终端服务器角色服务连接到远程计算机的控制台会话,请执行下列步骤:
  • 打开“命令提示符”窗口。
  • 键入:mstsc /v:server /console

您也可以使用“/console”参数连接到运行 Windows Server 2003、安装或未安装终端服务器角色服务的服务器。
值说明服务器指定要连接的远程计算机的 DNS 名称或 IP 地址。
3.mstsc和带参数的mstsc /console的差别
当在XP运行里面打上mstsc命令并连接上另外一台机子,用任务管理器查看里面的进程的时候,你会发现里面的进程少了好多?
明明肯定运行着个的程序无论是在任务管理器里面还是在任务栏、系统托盘里都找不到。难道程序消失啦?
其实是这样的:其实我们一直用的所谓的远程桌面,其实只能算是个虚拟的桌面,而并非真正的形如远程主机显示器上显示的桌面。
mstsc和mstsc /console两个命令所连接的远程桌面,其实是截然不同的。
前者mstsc连接上远程主机后,本地主机所看到的远程主机的桌面其实只是一个虚拟桌面,正如前面所说,并非是远程主机显示器此时显示的桌面,
而是精简化之后的结果,除了开机就运行的一些程序外,其实在开机之后手动运行的程序是不会显示的。当使用普通的远程桌面(开始菜单中)或者mstsc命令行工具(不带参数)连接到远端主机的时候,远程主机并不会注销当前用户并锁定桌面。而且此时在远程主机上的所有操作(这里的操作是说非修改性的操作,比如运行程序,下同)都不会影响本地的使用(当然如删除相关文件则例外)。
其实从远程桌面的设置选项中,我们也可以看出些端倪:



而带参数mstsc /console则不同,当本地通过此命令连接上远程主机的时候,远程主机便会立即注销当前登陆使用的用户并锁定桌面,而且在远程主机上的相关操作都将影响本地的使用,也就是说,当远程主机重新登陆用户的时候,本地将断开与之的连接。
但是它们俩都有个共同点,即在主机上面的操作与修改都将会被记录并保存。其实只要你的终端连接的个数没有达到上限,你可以在一台电脑上同时用普通的远程桌面(开始菜单中)或者mstsc命令行工具(不带参数)多次连接同一台远程PC。这有什么作用呢?其实当你用mstsc远程上去之后所运行的程序都不会在远程主机上实际运行,所以当你使用第二个mstsc远程连接上去之后,在终端上将不会看到你使用第一个mstsc远程连接上去之后运行的程序。举个例子,如果你使用第一个mstsc远程连接上去之后,登陆一个QQ123456789,然后你再使用第二个mstsc远程连接上去,你将看不到QQ程序在运行,且当你同样登陆QQ123456789,那么,你将会在第一个mstsc远程连接上去的终端上看到提示说QQ在别处登陆(纳闷儿不是,都是远程连接在同一台主机上运行的程序,为什么会这样呢)。但是,正如前面所说的,由于“在主机上面的操作与修改都将会被记录并保存”,所以,当你注销了你登录后,记录的操作都会生效!
4.新版远程桌面(MSTSC 6)发生的主要区别
注意,如果你像我一样安装了最新版的远程桌面软件(MSTSC 6),那么,你应该会发现, /console选项已经没有了,取而代之的是一个/admin选项。主要区别如下:
/console 参数失效,改为/admin参数;
IMsRdpClientAdvancedSettings接口属性ConnectToServerConsole
改为:IMsRdpClientAdvancedSettings6.ConnectToAdministerServer;
新版远程桌面命令行工具帮助


4.预防出现"终端服务器超出最大允许连接数"错误的措施:
1).用注销来退出远程桌面而不是直接关闭窗口
2).限制已断开链接的会话存在时间(方法见前文)
3).增加最多链接数,即设置可连接的数量多些(方法见前文)
----==很拽的分割线==-------=======knityster -=编织者=======------很拽的分割线------======------
『新版远程桌面软件下载』
1.我的网盘下载
包含用于windows 2000或更早版本Windows系统的远程桌面软件
包含用于Windows XP的新版远程桌面软件
包含用于Windows Server 2003的新版远程桌面软件
2.Microsoft 官方下载(需要通过Windows 正版验证):
1).用于XP的新版远程桌面软件:下载
2).用于Windows Server 2003的新版远程桌面软件:下载

----==很拽的分割线==-------=======knityster -=编织者=======------很拽的分割线------======------
P.S.
这次问题的解决走了不少弯路,下次解决问题的执行步骤应该如下:
1.查看程序帮助(软件帮助文档或对应命令行工具的帮助)
2.搜索引擎



感谢支持主机头,如果有问题可以联系我的QQ。目前提供各种服务。
网站建设,网站优化,美国VPS购买,VPS环境配置等。
目前通过本站购买VPS的话,可以免费帮忙配置环境。
付费提供DISCUZ PW DEDECMS技术支持。
www.www88.me
回复

使用道具 举报

879

主题

2

好友

5477

积分

管理员

Rank: 9Rank: 9Rank: 9

沙发
发表于 2012-11-27 20:24:32 |只看该作者
原因:用 远程桌面链接登录到终端服务器时经常会遇到“终端服务器超出最大允许链接数”诸如此类错误导致无法正常登录终端服务器,引起

该问题的原因在于终端服务的缺 省链接数为2个链接,并且当登录远程桌面后如果不是采用注销方式退出,而是直接关闭远程桌面窗口,那么

实际上会话并没有释放掉,而是继续保留在服务器端, 这样就会占用总的链接数,当这个数量达到最大允许值时就会出现上面的提示。

如何避免?

一、用注销来退出远程桌面而不是直接关闭窗口

二、限制已断开链接的会话存在时间

1、从终端服务配置中修改

运行-Tscc.msc(终端服务配置)-连接-双击RDP-Tcp或右击-属性-会话-选中第一个的替代用户设置(O)-结束已断开的会话[将默认值“

从不”改为一个适当的时间,比如30分钟]

2、从组策略修改

开始-运行-gpedit.msc-计算机配置-管理模板-windows组件-终端服务-会话

右边窗口选择 为断开的会话设置时间限制 -选择已启用,选择一个时间

三、增加最多链接数

1、 从终端服务配置中修改:运行-Tscc.msc(终端服务配置)-连接-双击RDP-Tcp或右击-属性,选择“网卡”选项卡-修改“最大连接数”

改成你 所需的值,当然这个值不也能太大,否则会占用较多的系统资源。不过这里修改的值好像不起作用,设置成无限制时照样还是会出现本

文所说的情况。

2、组策略级别要高于终端服务配置,当启用组策略后终端服务配置中的相应选项会变成灰色不可修改

运行-gpedit.msc-计算机配置-管理模板-Windows组件-终端服务

双击右边的”限制连接数量“-选择”已启用“-填入允许的最大连接数

四、改变远程终端模式

打开“控制面板”,双击“添加删除程序”,单击“添加删除Windows组件”,“组件”,在Windows组件向导对话框中选中“终端服务” , “

下一步”,“应用服务器”,“下一步”,然后按照提示即可改变终端服务的模式。

Windows 2000终端服务有2种运行模式: 远程管理模式和应用程序服务器模式。远程管理模式允许系统管理员远程管理服务器,而且只允许2个

终端会话同时登录终端服务器。应用程序服务器模式允许用户 运行一个以上应用程序,允许多个用户从终端登录访问服务器。但是,应用终端

服务的用户必须有终端服务授权,即必须在90天之内在这个域或工作组中设置终端 服务授权服务器,否则用户需删除应用程序,然后再重新安

装。

五、修改本地安全策略

控制面板>>管理工具>>本地安全策略>>本地策略>>安全选项>>

1、先找到>>Microsoft网络服务器:在挂起会话之前所需的空闲时间

默认为:15分钟,改为自己所需要的时间(就是登陆后无动作空闲超过多少时间后自动断开)

2、然后找到>>网络安全:在超过登录时间后强制注销。默认为:已禁用,一定要改为:已启用

如果已经发生解决办法:

1、首先你可以telnet到此主机上(不管你用哪种方法),当然如果能直接操作机器更好,不过直接操作就不必用命令行了,那当然是知道机器超

级管理员的密码的情况下,可以使用OpenTelnet来打开远程服务器的Telnet端口。

2、Telnet上去后,先看登陆的用户:

输入命令:query user

系统返回:

C:>query user

USERNAME?SESSIONNAME?ID?STATE?IDLE TIME?LOGON TIME

k12update?console?1?运行中?2007-3-14 14:57

此时可以看出的可能都不一样,根据具体情况而定。

ID 0 的用户是本地登陆的,ID 1 和 ID 12是3389登陆的用户,前者在运行中,后者已经断开了,但是断开了仍然占用系统资源和通道,我们要把

它踢掉。如下进行操作即可。

输入命令:logoff 1

3、如果服务器关闭了telnet功能(这是默认的),还可以通过SqlServer的xp_cmdshell扩展存储过程,使用格式:master.dbo.xp_cmdshell '

命令内容',其余可参考第二步。此方式要求有访问xp_cmdshell的权限

上面的解决办法基本没有用 后来我用 服务器终端服务器超出最大允许连接数时,以前考虑用冷启动服务器,但这样必须跑一趟机房,最近发

现最好的办法就是在“运行”命令行里输入:mstsc /console /v:你的服务器IP:远程端口,测试有效。

感谢支持主机头,如果有问题可以联系我的QQ。目前提供各种服务。
网站建设,网站优化,美国VPS购买,VPS环境配置等。
目前通过本站购买VPS的话,可以免费帮忙配置环境。
付费提供DISCUZ PW DEDECMS技术支持。
www.www88.me
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

主机头版权声明|百度地图|谷歌地图|Archiver|手机版|主机头

GMT+8, 2024-11-25 04:12

Powered by Discuz! www.zhujitou.com

© 2001-2012 主机头.

回顶部