気をつけたいWindowへのリモートデスクトップ接続
もう1年も前の話ですが、こんな記事を書きました。
この記事は以下のような狙いで書きました。
- Windowsで同時最大接続数が定められている場合、自分がリモートデスクトップで接続しているときに他の人がログインしてくると、自分の接続が奪われてしまうことがある
- 重要な作業をしているときにそれをやられると凹むので、自分は少なくとも、接続するときには、接続状況を確認してから、リモートデスクトップで接続しよう!→だからバッチ化した
こっちだって急いでいるんだ!
でも、空くのを待っていられる状況ばかりではなく、障害や不具合の対応をするときには、奪い取るしかなく、そう考えると、本来、これは、プロジェクトのルールとして、何か明文化されているべき事案。ま、障害だ、不具合だってときに、プロジェクトの有り様でケンカするほど頭が悪い話もないので、取るべき選択肢は1つ。
誰がつないでいるか調べてやる!
PsToolsが使える環境であることが前提。
PStoolsのディレクトリに移動
REM PStoolsをインストールしたディレクトリに移動
cd PStools
PStoolsを経由してコマンドを打つ
PsExec.exe \\IPorHOST -u domain\user -p password netstat -ano | find "3389"
IPやHOST、Domain、user、passwordは調査対象に適したものに書き換えてください。要するに、接続先でnetstatします。通常、3389ポートがリモートデスクトップ接続のポート。
出力例(192.168.208.51が接続先)
PsExec v2.11 - Execute processes remotely Copyright (C) 2001-2014 Mark Russinovich Sysinternals - www.sysinternals.com
Starting netstat on 192.168.208.51....168.208.51...
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 3616
TCP 192.168.208.51:3389 10.73.204.17:53878 ESTABLISHED 3616
TCP [::]:3389 [::]:0 LISTENING 3616
UDP 0.0.0.0:3389 *:* 3616
UDP [::]:3389 *:* 3616
netstat exited on 192.168.208.51 with error code 0.
状態がESTABLISHEDになっている行に表示されているIPアドレスの右側(上記の例では、10.73.204.17)が接続元。
この時点で誰が使っている端末か当たりがつけば、その人と会話して、接続を開放してもらえば良いし、まったく、検討がつかない場合はさらに…。
REM 接続元HOST名取得
nbtstat -A 10.73.204.17
REM 接続元への接続者特定
PsExec.exe \\接続元IPorHOST -u domain\user -p password query user
ちょっとやり過ぎ感もありますが。。。大抵のケースは、これで、誰がつないでいるかを推測できるレベルまで調査ができます。
本当にそこまでしなければならないのか
この方法が世間に浸透するのはあまり良くないと思いながら書いています。確かに、手段として、こういう調査もできるというのはお伝えしたいので書いていますが、本来はプロジェクト内で、適切な運用を行うことのほうが大事だと思います。
例えば。Slackとかでつなぐ人が「これからつなぐよー」宣言をして、何時ごろには開放できるのかも合わせて周知するといいですよね。メールやエクセルでこれを管理しはじめると、たぶん、面倒くささにかまけてルールを守らない人が出てきそうです。
ま、そもそも、適切な運用においては、PStoolsなんか使っちゃダメなんだとは思うですけどね(笑)。
くれぐれも、ご利用は計画的に。