PowerShellで『PSTerminalServices』を使ってリモートデスクトップの接続クライアントのIPアドレスを調べる
Pocket

Windowsにリモートデスクトップで繋げる際、セッション数などの問題から、現在サーバに接続しているユーザーとその接続元IPアドレス、ホスト名などを知りたい時がある。
UNIXの場合だと、whoコマンド、lastコマンドで接続元IPアドレスとそのユーザーが取得できるのだが、WindowsのDOSコマンドで使える「query session」だと、接続しているユーザーまではわかるが、接続元IPアドレスまでは取得することが出来ない。いちいち接続しているユーザーを元にイベントログから推測して調べるのも効率的ではない。

そんなときは、今回紹介する『PSTerminalServices』モジュールをインストールすると良いだろう。
このモジュールに用意されている「Get-TSSession」コマンドを利用することで、接続しているユーザ名と接続元IPアドレスを取得できる。

今回は、Windows 7 Professionalにこのモジュールをインストール、検証することにする。

1.インストール

まずは、『PSTerminalServices』モジュールのインストールを行う。
こちらからmsiファイルをダウンロードし、インストーラーを起動させる。

20150425-000001

20150425-000002

20150425-000003

20150425-000004

20150425-000005

 

無事インストールかどうかを確認するため、PowerShellで以下のコマンドを実行する。

Get-Module -Name PSTerminalServices -ListAvailable
Import-Module PSTerminalServices
Get-Command -Module PSTerminalServices
Sponsored Links

実行した結果がこちら。

PS C:\Users\Work> Get-Module -Name PSTerminalServices -ListAvailable

ModuleType Name                      ExportedCommands                                                           
---------- ----                      ----------------                                                           
Manifest   PSTerminalServices        {}                                                                         

PS C:\Users\Work> Import-Module PSTerminalServices
PS C:\Users\Work> Get-Command -Module PSTerminalServices

CommandType     Name                   Definition
-----------     ----                   ----------
Function        Disconnect-TSSession   ...
Function        Get-TSCurrentSession   ...
Function        Get-TSProcess          ...
Function        Get-TSServers          ...
Function        Get-TSSession          ...
Function        Send-TSMessage         ...
Function        Stop-TSProcess         ...
Function        Stop-TSSession         ...

無事、インストールできたことが確認出来た。

2.「Get-TSSession」コマンドの実行

さて、それでは実際に「Get-TSSession」コマンドを実行してみよう。

Get-TSSession

実際にコマンドを実行した結果がこちら。

20150425-000006

PS C:\Users\Work> Get-TSSession

Server          SessionID State           IPAddress       ClientName      WindowStationName UserName            
------          --------- -----           ---------       ----------      ----------------- --------            
localhost       0         Disconnected                                    Services                              
localhost       1         Connected                                       Console                               
localhost       2         Active          192.168.X.XXX   XXXXXXXXXXX     RDP-Tcp#0         Work-PC\Work        
localhost       65536     Listening                                       RDP-Tcp

無事、接続元IPアドレスが取得できた。
PowerShellならPSexecから接続して利用できるので、これならば良いだろう。

(本当は、whoコマンド相当のものを入れてくれればいいんだけど…まぁいいか…)

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。