Windowsクライアントの端末情報を簡単に集める方法

2017.6.25

コマンドでwindows端末の情報を集める

windows端末の情報をコマンドで集めるには、systeminfoコマンドを使う。

systeminfo

このコマンドを使うことで、下記のような情報を取得することができる。

リモートで別端末の情報を取得する。

systeminfoコマンドはリモートで別端末の情報を集めることもできる。

systeminfo /s xxx.xxx.xxx.xxx /u user /p password

リモートで別端末の情報を集めようとしたら、エラーが出た。

先ほど紹介した、systeminfoコマンドを使って、別端末の情報を取得しようとしたら、下記のようなエラーが出るケースがある。

RPC サーバーを利用できません。

遭遇したケースとしては、セキュリティーソフトのファイヤーウォールが入っていて、使用するポートがブロックされていた。

インターネットで調べたところでは、下記のポートを解放してやる必要があるようだ。

・ 135/tcp (RPC エンドポイント マッパー / 全 OS バージョン共通) 
・ 1024-5000/tcp,udp (RPC 動的ポート / Windows Server 2003, Windows XP の場合) 
・ 49152-65535/tcp,udp (RPC 動的ポート / Windows Server 2008, Windows Vista の場合) 

私の場合は、tcpの49152-65535ポートを解放することで、systeminfoコマンドをリモートで使用できるようになった。

コマンドで、リモートで別端末のイベントログを取得する

主にサーバーの情報を取得することが多くなるかと思うが、イベントログをリモートで取得して、エラー等が発生してないか確認するときに使える。

wmic /Node:%1 /User:%2 /Password:%3 ntevent where "(logfile='%4' and TimeGenerated>='%START_DATE%000000.0+540' and (EventType='1' or EventType='2'))" list full /format:htable

この例で使用しているパラメータを説明する。

/Node:%1

接続先のIPを指定する。マシン名でも可能。

/User:%2

ユーザ名を指定する。

/Password:%3

指定したユーザのパスワードを指定する。

logfile='%4'

ログのタイプを指定する。イベントログの画面に表示されている、system、application、securityなどが指定できる対象になる。

TimeGenerated>='%START_DATE%000000.0+540'

取得するログの日付を指定している。この例では、%START_DATE%にセットされた日付の0時0分0秒以降のデータが対象になる。

(EventType='1' or EventType='2'))" list full

ここで指定しているEventTypeの番号には下記の意味がある。

1:エラー

2:警告

4:情報

8:セキュリティの成功の監査

16:セキュリティの失敗の監査

/format:htable

出力されるログの形式を指定している。

ここで指定できる形式は下記のコマンドを実行することで、確認できる。

wmic ntevent list /format /?

htableはhtml形式の表で出力されることになる。