引起該問題的原因在於終端服務的缺 省鏈接數為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的權限
上面的辦法基本沒有用