遠端桌面提示「超過最大連線數」無法登入,且無法透過實體主控台操作時,可利用已連線的 SQL Server 執行 xp_cmdshell 強制登出殭屍 Session。
xp_cmdshell (EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;)。sysadmin 固定伺服器角色 (預設僅 sysadmin 可執行)。EXEC xp_cmdshell 'quser';
回傳結果包含 Session ID、使用者名、狀態、閒置時間等。EXEC xp_cmdshell 'logoff 1'; -- 將 1 替換為實際 Session ID
-- 1. 查看所有 Session
EXEC xp_cmdshell 'quser';
-- 輸出範例:
-- USERNAME SESSIONNAME ID STATE IDLE TIME LOGON TIME
-- admin rdp-tcp#0 1 Active . 2024/1/12 08:00
-- user1 rdp-tcp#1 2 Disc 2:00 2024/1/12 07:30
-- 2. 強制登出 ID=2 的殭屍 Session
EXEC xp_cmdshell 'logoff 2';
xp_cmdshell 權限極高,嚴禁對低權限帳號開放。xp_cmdshell,緊急時由 DBA 臨時開啟、用畢即關。Remote Desktop Services Manager (mstsc /admin)、PowerShell Invoke-Command 等更受控方式。