質問: pcのリモート接続状態を事前にコマンド等で調べたい 初歩的な質問かもしれませんが、宜しくお願いします。 【質問の内容】 事前に対象ホスト(共用pc)のリモートデスクトップ(3389)の接続状態を調べるコマンド等はないでしょうか。 経緯ですが、社内で有償ソフト(デバイスライセンス)がインストールされたpcを5台準備して、複数のユーザの自席pcからリモート接続させて共用で使わせたいと考えております。 利用する可能性がある社員は1000人程のいますが、同時に利用されることはあまりないため台数については上記の通り5台で十分と考えておりますが、ここで1点頭が痛い問題がでてきました。 リモートデスクトップで接続するまで他のユーザがそのpcにログインしているか分からない為、4台が利用されてしまっている場合は、最悪5台全てに接続を試みないといけません。 そこで、利用者の負担を減らすため、簡単な接続ツールをつくって対象のpcの接続状態を可視化したいと考えたのが今回の質問の経緯です。 【接続ツールの機能】 (1)対象pc5台分の接続ボタン(クリックすると、単純にmstsc.exeに接続先ip情報を渡す) (2)対象pc5台分のリモート接続状態をリアルタイムに表示(30秒毎に更新 or 手動更新)⇒ここで、接続状態を確認したい。 【参考情報】 ホストのos:接続元pc、共用pcともにwindowsxp proです。(共用pcはvmware上の仮想pc) 接続ツール:windows標準のリモートデスクトップ接続です。
回答: いい方法かはわかりませんが、考えられる方法として、qwinsta.exe(接続元のosがxpより新しければquery session)で情報を取得するがありそうです。 qwinsta.exe /server:接続先ホスト名 このコマンドで返ってくる文字列で判断する方法です。 参考webサイト http://www.atmarkit.co.jp/fwin2k/win2ktips/851tssess/tssess.html ただ、他のユーザーの状態を見るため接続先ホストに対して権限が必要になります。 既定では、remote desktop users グループにはこの権限がありますが、この場合このコマンドを実行するユーザーが、接続先のホストに対して権限を有している必要があるということです。 active directoryを導入していればそんなに大した話ではありませんが、そうでなければユーザーの管理方法によっては権限の設定が大変になるかもしれません。 qwinsta.exeを実行する際にユーザーを偽装するなどの仕組みをツールに入れるほうが現実的な場合もあるかもしれません。 また、remote desktop usersを使用するのではなく、もっと厳密な権限を設定したい場合osがxpなのでターミナルサービス管理ツール(リモートデスクトップ接続管理ツール)が使えないので設定する方法はわからないです。 (おそらくwmiなどで設定出来ると思いますが) なお、qwinsta.exeを実行するためにはrpc(リモートプロシジャコール)が出来る必要があります。 windowsファイアウォール(又はサードパーティのパーソナルファイアウォール)でrpcが通るようになっている必要があります。