1. 程式人生 > >解決遠端連線伺服器的最大連線數

解決遠端連線伺服器的最大連線數

現象及原因:用遠端桌面連線登入到終端伺服器時經常會遇到“終端伺服器超出最大允許連線數”諸如此類錯誤導致無法正常登入終端伺服器,引起該問題的原因在於Windows Server 2003中設定終端服務的預設連線數為2個連結,並且當登入遠端桌面後如果不是採用登出方式退出,而是直接關閉遠端桌面視窗,那麼實際上會話並沒有釋放掉,而是繼續保留在伺服器端,這樣就會佔用總的連結數,當這個數量達到最大允許值時就會出現上面的提示。
解決方案:
法一:用“登出”方式退出遠端桌面而不是直接關閉視窗
法二:踢出已經斷開連線的使用者
1、首先telnet到此主機上(不管你用什麼方法),當然如果能直接操作機器更好,不過直接操作就不必用命令行了,用控制檯更直觀(略過)。
2、Telnet上去後,先看登陸的使用者:
輸入命令:query user 系統返回:
使用者名稱Username      會話名Session Name      ID   狀態State    空閒時間Idle Time     登入時間Logon Time
administrator            console                               0   執行中               .                           2007-1-12 10:24
lucy                                                                           1   唱片            無                            2007-1-12 10:35
>administrator         rdp-tcp#35                      2   已斷開               .                          2007-1-25 18:09
此時可以看出的可能跟我的不一樣,根據你的具體情況而定。
ID 0 的使用者是本地登陸的
ID 1 和 ID 2是3389登陸的使用者,前者在執行中, 後者已經斷開了,但是斷開了仍然佔用系統資源和通道,我們要把它踢掉,如下進行操作即可。
輸入命令:logoff 1
再看看
C:/Documents and Settings/Administrator.AD>query user
使用者名稱Username      會話名Session Name      ID   狀態State    空閒時間Idle Time     登入時間Logon Time
administrator          console                                0   執行中               .                          2007-1-12 10:24
>administrator       rdp-tcp#35                       2   已斷開               .                          2007-1-25 18:09
3、如果伺服器關閉了telnet功能(這是預設的),還可以通過SqlServer的xp_cmdshell擴充套件儲存過程,使用格式:master.dbo.xp_cmdshell ''''命令內容'''',其餘可參考第二步。此方式要求有訪問xp_cmdshell的許可權。
法三(最佳方法-推薦):限制已斷開連結的會話存在時間
一般情況下,我們在維護遠端伺服器時,不可能長時間線上,但是系統預設的卻是隻要登入就不再斷開。因此,我們可以修改這一預設設定,給它指定一個自動斷開的時間即可。
可以在Windows 2003 伺服器上通過組策略中設定一下來解決問題:單擊"開始→執行",輸入"gpedit.msc",回車後開啟組策略視窗,然後依次定位到"計算機配置→管理模板→Windows 元件→終端服務→會話",然後在右側視窗中雙擊"為斷開的會話設定時間限制",在開啟的視窗中將"結束斷開連線的會話"時間設定為5分鐘,或者設定為空閒就斷開。

在遠端伺服器上開啟“執行”視窗,輸入“tscc.msc”連線設定視窗。然後雙擊“連線”項右側的“RDP-Tcp”,切換到“會話”標籤,選中“替代使用者設定”選項,再給“結束已斷開的會話”設定一個合適的時間即可。
法四:增加連線數量,即設定可連線的數量多些
預設情況下允許遠端終端連線的數量是2個使用者,我們可以根據需要適當增加遠端連線同時線上的使用者數。
單擊“開始→執行”,輸入“gpedit.msc”開啟組策略編輯器視窗,依次定位到“計算機配置→管理模板→Windows 元件→終端服務”,再雙擊右側的“限制連線數量”,將其TS允許的最大連線數設定大一些即可。
經過上面兩個配置(法三&法四),基本上就可以保證遠端終端連線時不再受限。但仍有人反映,當前同時只有一個使用者進行連線,卻提示超出最大允許連結數,這又是什麼原因呢?出現這種情況是因為操作不當所造成的。在上一個帳戶登入遠端桌面後退出時,沒有采用登出的方式,而是直接關閉遠端桌面視窗,那麼導致該會話並沒有被釋放,而是繼續保留在伺服器端,佔用了連線數,這樣就會影響下一個使用者的正常登入了。
法五:限制使用者會話數
對Terminal Services進行限制,使得一個使用者僅僅能夠連線一次
對於Windows Server 2003,請在Terminal Services Configuration(Terminal Services配置)中將“限制每位使用者只有擁有一個會話”(Restrict each user to one session)設定為“是”(Yes)。此外,您可以將“限制終端服務使用者使用單個遠端會話”組策略設定為“啟用”。