解决终端访问发生“连接超过最大数”的几种方法

来源:互联网 发布:vue.js 给span赋值 编辑:程序博客网 时间:2024/05/22 08:16
 
【问题】:终端访问经常会发生“连接超过最大数”,发生这种情况,如何进入终端界面?在不重启的情况下:
【原则】:杀掉已经存在的连接
【方法】:
所有方法的前提是你有相应的权限:(与远程服务器有相同的用户名及密码,或是域管理员)
第一步: 查看远程终端连接的信息
要想杀掉已经存在的连接,必须先知道这些连接的信息。可用的查看连接到远程终端服务器的用户/进程信息的方法如下,共有3dos命令,任用一个即可:
序号
命令
说明
1
Query User
显示有关登录到该系统的用户的信息
2
query session
显示有关终端会话的信息
3
query process
显示有关进程的信息
 
具体说明如下:
 
一、Query User
显示有关登录到该系统的用户的信息。
该命令的使用说明如下:
C:/Documents and Settings/Administrator>query user /?
显示有关登录到该系统的用户的信息。
QUERY USER [username | sessionname | sessionid] [/SERVER:servername]
  username            标识用户名。
  sessionname         用名称 sessionname 识别会话。
  sessionid           ID sessionid 识别会话。
  /SERVER:servername  要查询的服务器(默认值是当前服务器)
例如:我要看运程服务器myserver(IP地址也可以)上的用户:
C:/Documents and Settings/Administrator>query user /server:myserver
 USERNAME              SESSIONNAME        ID  STATE   IDLE TIME  LOGON TIME
 administrator         console                     0  运行中          .            2006-8-24 17:16
 domainadmin             rdp-tcp#683             8  运行中         26           2007-9-11 9:23
 domainadmin             rdp-tcp#675            9  运行中    3+23:55      2007-9-21 10:32
 
二、query session
显示有关终端会话的信息
C:/Documents and Settings/Administrator>query session /?
显示有关终端会话的信息
QUERY SESSION [sessionname | username | sessionid]
              [/SERVER:servername] [/MODE] [/FLOW] [/CONNECT] [/COUNTER]
  sessionname         用名称 sessionname 识别会话。
  username           
用用户 username 识别会话。
  sessionid          
ID sessionid 识别会话。
  /SERVER:servername 
要查询的服务器(默认值是当前服务器)
  /MODE              
显示当前线路设置。
  /FLOW              
显示当前流程控制设置。
  /CONNECT           
显示当前连接设置。
  /COUNTER           
显示当前终端服务计数器信息。
例如:我要看运程服务器myserver(IP地址也可以)上的会话信息:
C:/Documents and Settings/Administrator>query session /server:10.1.0.7
 
会话名               用户名                            ID      状态   类型        设备
 console           Administrator                 0     
运行中  wdcon
 rdp-tcp                                             65536 
侦听    rdpwd
 rdp-tcp#683       domainadmin                 8    
运行中  rdpwd
 rdp-tcp#675       domainadmin                 9     
运行中  rdpwd
 
三、query process
C:/>query process /?
显示有关进程的信息。
QUERY PROCESS [* | processid | username | sessionname | /ID:nn | programname]
[/SERVER:servername] [/SYSTEM]

*
显示所有可见进程。
processid
显示 processid 指定的进程。
username
显示所有属于 username 的进程。
sessionname
显示所有在 sessionname 运行的进程。
/ID:nn
显示所有在会话 nn 处运行的进程。
programname
显示所有跟 programname 相关进程。
/SERVER:servername
要查询的终端服务器。
/SYSTEM
显示系统进程的进程信息。
C:/Documents and Settings/Administrator>query process * /server:myserver
 USERNAME              SESSIONNAME         ID    PID  IMAGE
 (
未知)                console              0   1928  sqlmangr.exe
 (
未知)                console              0   3628  conime.exe
...
 (
未知)                id 8                 8   3056  explorer.exe
 (
未知)                id 8                 8   3176  bacstray.exe
 (
未知)                id 8                 8   4560  vptray.exe
...
第二步:根据以上查询信息,中断其中一个连接
使用以上命令查询终端连接的信息,可以使用如下几个命令中断指定的连接。
序号
命令
说明
1
tsdiscon
中断终端会话的连接
2
reset session
将会话子系统硬件和软件复位成所知的初始数值。
3
tskill
结束进程
 
你可以用以下命令来中断一个连接:
一、Tsdiscon
中断终端会话的连接
C:/>tsdiscon /?
中断终端会话的连接

TSDISCON [sessionid | sessionname] [/SERVER:servername] [/V]

sessionid
会话 ID
sessionname
会话名称。
/SERVER:servername
指定终端服务器(默认值是当前服务器)
/V
显示有关执行的操作的信息。
根据以上命令查到的sessionid | sessionname,执行如下:
二、reset session
重置session
C:/Documents and Settings/wangshumei>reset session /?
将会话子系统硬件和软件复位成所知的初始数值。
RESET SESSION {sessionname | sessionid} [/SERVER:servername] [/V]
  sessionname         用名称 sessionname 识别会话。
  sessionid          
ID sessionid 识别会话。
  /SERVER:servername 
含有该会话的服务器(默认值是当前值)
  /V                 
显示其他信息。
例如:
C:/Documents and Settings/Administrator>reset session 9 /server:myserver /V
正在复位会话 ID 9
已复位会话 ID 9

三、tskill
结束进程
C:/>tskill /?
结束进程。

TSKILL processid | processname [/SERVER:servername] [/ID:sessionid | /A] [/V]

processid
要结束的进程的 Process ID
processname
要结束的进程名称。
/SERVER:servername
含有 processID 的服务器(默认值是当前值)
使用进程名和 /SERVER 时,必须指定
/ID
/A
/ID:sessionid
结束在指定会话下运行的进程。
/A
结束在所有会话下运行的进程。
/V
显示正在执行的操作的信息。
 
介绍一下其他方法,你可以用以下命令来远程重新启动系统:
C:/>tsshutdn /?
在控制方式下关闭服务器。

TSSHUTDN [wait_time] [/SERVER:servername] [/REBOOT] [/POWERDOWN]
[/DELAY:logoffdelay] [/V]

wait_time
结束所有用户会话前用户通知后
等待的秒数(默认值是 60)
/SERVER:servername
要关闭的服务器(默认值是当前值)
/REBOOT
用户会话终止后重新启动服务器。
/POWERDOWN
服务器准备关闭。
/DELAY:logoffdelay
注销所有连接的会话后要等待的
秒数(默认值是 30)
/V
显示有关正在执行的操作的信息。

如果你有安装了windows2000 Resource Kit或者windowsXp,那么你可以用shutdown程序来远程关机或者重新启动一台计算机。
  
另外,还有一些与远程终端有关的命令,不过与这个话题无关。
还有
Shadow
允许您远程控制另一用户的活动会话。可以查看或随时控制该会话。如果您选择要随时控制用户的会话,则可以在会话中输入键盘和鼠标操作。
这个命令必须在对方活动的情况下,且对方接受控制的情况下,才可以控制对方的活动会话。
例如:
C:/Documents and Settings/Administrator>shadow /?
监视另一个终端服务会话。

shadow {sessionname | sessionid} [/server:servername] [/v]

参数

sessionname

要远程控制的会话的名称。

sessionid

要远程控制的会话的 ID。使用 query user 命令显示会话及其会话 ID 的列表。

/server:servername

指定包含要远程控制的会话的终端服务器。默认情况下,使用当前终端服务器。

/v

显示关于要执行的操作的信息。
 
 
以上内容根据http://www.itpub.net/70586,2.html整理