対象OS:Windows 7/Windows 8/Windows 8.1/Windows 10/Windows Server 2008/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2
ネットワーク上に存在するWindowsシステムの一覧を調べ、それらのシステム構成やOS、ネットワークなどの設定情報を把握しておくことは、システム管理の基本的な作業である。
といっても、いちいちそれらのシステムにまで出向いてコンピューターを起動し、そのシステム情報を収集するのでは非常に手間が掛かる。可能ならばリモートから情報を収集するようにしたい。
Windows OS上でシステムの情報を収集するためのコマンドにはいくつかある。そのうち、本TIPSではsysteminfo.exeコマンドを紹介する。これはコマンドプロンプト上で利用するツールであり、ローカルのシステム情報だけでなく、リモートコンピューターの情報も収集できる。
systeminfoで表示される情報には、コンピューター名やOS名、サービスパック情報、メモリ容量、ドメインコントローラーやメンバーサーバといったシステム用途情報、インストールされているホットフィックス(修正プログラム)情報、ネットワークカード情報などがある。
コマンドプロンプトを開いてsysteminfoを実行すると、デフォルトではローカルのシステムに関する情報が表示される。
C:\>systeminfo ……コマンドの実行
ホスト名: USERPC01
OS 名: Microsoft Windows 10 Enterprise Insider Preview
OS バージョン: 10.0.10565 N/A ビルド 10565
OS 製造元: Microsoft Corporation
OS 構成: メンバー ワークステーション ……ドメイン/ワークグループ構成
OS ビルドの種類: Multiprocessor Free
登録されている所有者: user01@example.jp
登録されている組織:
プロダクト ID: XXXXX-XXXXX-XXXXX-XXXXX
最初のインストール日付: 2015/10/15, 17:44:37
システム起動時間: 2015/10/15, 17:41:15
システム製造元: FUJITSU
システム モデル: FMVA77GB
システムの種類: x64-based PC
プロセッサ: 1 プロセッサインストール済みです。
[01]: Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~2201 Mhz
BIOS バージョン: FUJITSU // Phoenix Technologies Ltd. Version 1.13, 2013/07/29
Windows ディレクトリ: C:\WINDOWS
システム ディレクトリ: C:\WINDOWS\system32
……(中略)……
ホットフィックス: 4 ホットフィックスがインストールされています。
[01]: KB3099406 ……更新/修正プログラムの情報
[02]: KB3103470
[03]: KB3105216
[04]: KB3106638
ネットワーク カード: 2 NIC(s) インストール済みです。 ……ネットワークカードの情報
[01]: Realtek PCIe GBE Family Controller
接続名: イーサネット
DHCP が有効: はい
DHCP サーバー: 192.0.2.1
IP アドレス
[01]: 192.0.2.11
[02]: 2001:db8::70c8:5b30:a7f4:fd3b
[02]: Intel(R) Centrino(R) Wireless-N 1000 Driver
接続名: Wi-Fi
状態: メディアは接続されていません
Hyper-V の要件: VM モニター モード拡張機能: はい ……Hyper-V対応情報
ファームウェアで仮想化が有効になっています: はい
第 2 レベルのアドレス変換: はい
データ実行防止が使用できます: はい
リモートコンピューターの情報を収集する場合は、「/s」オプションを使って、接続先のコンピューター名を指定する。またユーザー名やパスワードの指定が必要な場合は、「/u <ユーザー名> /p <パスワード>」のように指定すればよい。
C:\>systeminfo /s server1 /u Administrator /p <パスワード>
ホスト名: SERVER1
OS 名: Microsoft Windows Server 2012 R2 Datacenter
OS バージョン: 6.3.9600 N/A ビルド 9600
OS 製造元: Microsoft Corporation
OS 構成: メンバー サーバー
OS ビルドの種類: Multiprocessor Free
……(以下省略)……
「/p <パスワード>」の指定を省略すると、パスワード入力のためのプロンプトが表示されるので、手動で入力する。バッチファイルなどを利用する場合は、セキュリティのために、パスワードを直接記述しないようにしておくのがよいだろう。
ネットワーク上に存在するコンピューターをスキャンしてログを作成するには、例えばforコマンドなどを使って多数のコンピューターに対して自動スキャンさせるか(コンピューター名の一覧をテキストファイルに作成しておき、for /fコマンドで処理する)、IPアドレスを順番に変えながらスキャンするとよいだろう。
例えば192.168.0.0/24のネットワーク上のコンピューター(192.168.0.1〜192.168.0.254)をスキャンするには、次のようにする(存在しないIPアドレスを指定するとタイムアウトするまで待つことになるので、終了するまでにはかなり時間が掛かる)。
C:\>for /L %i in (1,1,254) do systeminfo /s 192.168.0.%i /u <ドメイン>\<ユーザー名> /p <パスワード> /fo csv >> results.txt
出力をファイルに収集するために、ここでは結果を「>> result.txt」としてファイルに追加書き込みしている。「/fo csv」はCSV形式で出力を行わせるための指定であり、「/fo table」とすると表形式で出力させることもできる。出力形式の詳細については「systeminfo /?」やヘルプなどで確認していただきたい。
なお、接続するユーザー名だけでなくパスワードも指定しておかないと、パスワードの入力待ちで実行が停止することがあるので注意すること。
また、このコマンドをバッチファイルなどに記述して利用する場合は、2カ所ある「%i」を「%%i」と変更する必要がある。詳細はTIPS「バッチファイルの基本的な使い方」を参照していただきたい。
■更新履歴
【2015/11/01】Windows 7以降のWindows OSに対応しました。
【2004/12/04】初版公開(対象OSはWindows XP/Windows Server 2003)。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.