RDP_qwinsta_01

很多企業都盡可能禁止一般用戶端直接 RDP 連線到遠端伺服器進行管理,包含我目前服務的單位也是,必須先遠端桌面到俗稱 RDP Gateway 的跳板主機,再連線到一些極度重要的伺服器像是 Domain Controller 或是 DB Server 等等。

但不知道是什麼原因,我很常遇到遠端進跳板主機時,就卡在如本文的截圖畫面說 「Please wait」,或者告知遠端桌面的連線 Session 登出中,怎樣就是無法正常進入桌面;導致我不時要拜託同事,把我的連線 Session 從那台主機中踢出。

總不能每次都要拜託同事幫忙,還是要想辦法自助,於是研究了一下方法。

一種是,用我自己另一個管理帳號登入該主機,把我的一般帳號 RDP 連線踢出。但我個人不喜歡這個方式,主要是我希望盡可能減少使用高權限的管理帳號,到非重要的伺服器上使用。
RDP_qwinsta_03

後來發現,其實可以在另一台可被登入的跳板主機上,先用下面指令列出遠端主機的連線狀態

qwinsta /server:遠端主機名或IP

從列出的結果,以下圖來說,我想要終結的是我自己在那台主機的連線,所以使用另一個指令

rwinsta /server:遠端主機名或IP "連線ID"

RDP_qwinsta_02

這樣就輕鬆完成了終止另一台電腦上的 RDP Session。

另外要提醒的是,要能夠完成這樣的工作,會有下面幾個條件
1. 指令執行身分必須要有遠端電腦的管理權限
2. 指令運作會使用到 RPC 445 埠,請確認 ACL 或防火牆是否允許使用。否則會吃到「The RPC server is unavailable.」的錯誤。

RDP_qwinsta_04

參考資料
MS Doc - qwinstarwinsta