
在 Windows 中,我可以使用以下命令來取得特定伺服器上的遠端桌面會話:
qwinsta /server:SERVER_NAME
但這給了我所有不同狀態的會話(例如:活動、光碟…)。
是否有人知道命令、批次檔或腳本來取得「活動」會話?我希望能夠從普通的 Windows 7 用戶端運行它。
答案1
qwinsta /server:SERVER_NAME | find /I "Active"
請注意,這只是一個快速而骯髒的單行程式碼,它只會吐出包含“Active”(小寫或大寫)的每一行。如果您期望使用者名稱包含此字串,那麼事情會變得更加複雜,並且需要檢查第四列是否有正確的「Active」字串:
for /F "usebackq tokens=1,2,3,4,5*" %i in (`qwinsta /server:SERVER_NAME ^| find "Active"`) do if "%l" == "Active" ( echo %i %j %k %l %m )
如果您需要處理輸出的單一字段,則首選後一種形式,因為它會公開%i
...%m
變數中的字段。
但如果您的使用者名稱包含空格,這種結構也會被破壞。如果是這種情況,qwinsta 就失去了一切,您應該尋找 PowerShell 函數來檢索使用者清單。