今天用遠端桌面連線登錄到終端伺服器時,總是彈出「終端伺服器超出最大允許連接數」,無法正常登錄伺服器。 上網一查才知道:引起該問題的原因在於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 SettingsAdministrator.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允許的最大連接數設置大一些即可。
經過上面兩個配置(法三&法四),基本上就可以保證遠端終端機連接時不再受限。 但仍有人反映,當前同時只有一個使用者進行連接,卻提示超出最大允許連結數,這又是什麼原因呢? 出現這種情況是因為操作不當所造成的。 在上一個帳戶登錄遠端桌面後退出時,沒有採用登出的方式,而是直接關閉遠端桌面視窗,那麼導致該會話並沒有被釋放,而是繼續保留在伺服器端,佔用了連接數,這樣就會影響下一個使用者的正常登錄了。
法五:限制使用者會話數
對終端服務進行限制,使得一個使用者僅僅能夠連接一次
對於Windows Server 2003,請在終端服務配置中將「限制每位使用者只有擁有一個會話」(Restrict each user to one session)設置為「是」(Yes)。 此外,您可以將「限制終端服務使用者使用單個遠端會話」群組原則設置為「啟用」。