Windows
當使用者連接到終端伺服器時觸發事件?
我們有一個(非常)脆弱的軟體套件在我們的數據中心的伺服器上執行,它需要使用者登錄,但如果使用者登錄兩次(資源爭用,各種問題),就會崩潰並崩潰
由於其脆弱的性質,某些程序一直中斷,需要我們的支持人員通過 RDP 連接到機器並重新啟動東西。他們通過在打開會話中執行的通用帳戶進行連接,然後斷開連接而不是註銷。
問題是,有時他們最終不會連接到斷開的會話,而是產生一個新的會話,伺服器隨後失敗。
我正在尋找一種方法來檢測,在連接/登錄時,如果機器上有另一個 RDP 會話並警告使用者,這樣可以避免災難。
我非常想把這台機器從高處扔出去,但此時更換軟體不是一種選擇。
更新
最後,我實現了這兩種解決方案。這很有效。
一種方法可能是執行一個登錄腳本,將他們連接到斷開的會話,而不是要求他們採取一些行動。
SETLOCAL SET SESSIONNUMBER=-1 FOR /F "skip=1 tokens=3" %%i in ('query session %username% ^| find /v ">"') DO SET SESSIONNUMBER=%%i IF {%SESSIONNUMBER%}=={-1} GOTO :EOF tscon.exe %SESSIONNUMBER% ENDLOCAL logoff.exe
創建組策略(域或編輯本地電腦設置):電腦配置、管理模板、Windows 組件、終端服務、將終端服務使用者限制為單個遠端會話設置、啟用。
這將迫使使用者進入現有會話;除非其他人目前正在會話中(其中會稍微複雜一些,但您似乎並不擔心兩個人同時連接的可能性)。
這不是您要求的,但可以防止問題而不是添加一些瘋狂的腳本。