
Windows では、次のコマンドを使用して特定のサーバー上のリモート デスクトップ セッションを取得できます。
qwinsta /server:SERVER_NAME
しかし、これにより、さまざまな状態 (例: アクティブ、ディスク、...) のセッションが提供されます。
「アクティブ」セッションを取得するコマンド、バッチファイル、またはスクリプトについて知っている人はいませんか? 通常の Windows 7 クライアントから実行できるようにしたいと考えています。
答え1
qwinsta /server:SERVER_NAME | find /I "Active"
これは、単に「Active」(小文字または大文字)を含むすべての行を吐き出すだけの、手っ取り早いワンライナーであることに注意してください。この文字列を含むユーザー名を期待する場合は、状況がさらに複雑になり、正しい「Active」文字列の 4 番目の列を確認する必要があります。
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 関数を探す必要があります。