[システム情報] を使って効率的に情報を収集する
2010年8月25日 コメントを残す
前回までの記事で [システム情報] を利用して組織にあるコンピューター (のハードウェア、ソフトウェア、ネットワーク) についての情報を収集できる事を説明したが、今回はその具体的な手順について説明する。
前回説明のように [システム情報] ツールは [スタート] メニューや [ファイル名を指定して実行] から起動できる。画面にそのコンピューターの情報が表示されるのだが、表示される情報はまとめてファイルに保存できるようになっており、ファイルは二つの保存式が選べる。保存形式の一番目はシステム情報ファイル形式という、拡張子が .nfo のシステム情報ツールに固有のファイル形式 (と言っても実際は XML 形式のデータ) で、もう一つはテキスト形式だ。
.nfo 形式のメリットは保存したファイルを [システム情報] ツールで開く事ができる点で、別のコンピューターで保存したファイルを開く事もできる。この場合情報はカテゴリごとにツリーで分類されて表示できるので、特定の項目を探しやすい。
対してテキスト形式の場合は、汎用のデータ形式なので加工しやすく、他のソフトウェアにデータを移行しやすい点だ。テキストはタブ区切りになっているので例えば Excel に読み込んで、必要な所だけ表形式を整えて印刷する事もできる。
どちらの形式を使うのかはその後の利用・管理・整理の方法によって一長一短だが、どうせなら同時に両方の形式で保存しておく事も考慮してよいだろう。
それぞれの形式で保存する操作は以下の通りだ。
システム情報ファイル形式
- システム情報を起動する
- [ファイル] – [上書き保存] を選択する
- [名前を付けて保存] ダイアログで、適当な名前を付け適切な場所に保存する
テキスト形式
- システム情報を起動する
- [ファイル] – [エクスポート] を選択する
- [ファイルのエキスポート] ダイアログで、適当な名前を付け適切な場所に保存する
さてこの方法だといちいちユーザー インターフェイスを使って操作しなければならず、また保存場所を手動で選択、ファイル名も手入力しないといけないので面倒だし、誤操作などを考えるとエンド ユーザーにやってもらうのは難しい。そこで情報を収集して特定の名前で特定の場所に保存する動作をできるだけ自動化する方法を紹介しよう。
[システム情報] ツールにはユーザー インターフェイスを表示せず、情報を収集してファイルに保存する起動オプションがある。これでシステム情報ファイル形式でもテキスト形式でも自動的にファイルとして保存する事ができる。
起動スイッチは次のように指定できる。
msinfo32.exe /nfo pathfilename.nfo (システム情報ファイル形式の場合)
msinfo32.exe /report pathfilename.txt (テキスト形式の場合)
※ いずれも path は保存するフォルダのパス、filename は保存するファイル名
参考情報
システム情報 (MSINFO32) の各種スイッチの使い方
http://support.microsoft.com/kb/300887/ja
ファイル名は情報を収集したコンピューターのコンピューター名にしておくと後で分かりやすいのだが、そのためには環境変数 COMPUTERNAME を利用すると便利だ (コマンドに %COMPUTERNAME% と書いておくと、コンピューター名に置き換えられて実行される)。また保存する場所は情報を収集する各コンピューターから利用できるネットワーク上の共有フォルダーにすると良いだろう。
例えば SERVER という名前のコンピューターに SHARE という共有フォルダーがある場合、コンピューター名 TEST のコンピューターで以下のように実行すれば SHARE フォルダに TEST.nfo または TEST.txt という名前で収集した情報が保存される。
msinfo32.exe /nfo SERVERSHARE%COMPUTERNAME%.nfo
msinfo32.exe /report SERVERSHARE%COMPUTERNAME%.txt
利用している環境に併せて保存する共有フォルダのパス名を変えて、実際に [ファイル名を指定して実行] でこれらのコマンドを実行し、情報が保存できる事を確認して欲しい。
さてこのコマンドをさらに簡単に実行するにはバッチファイルにすれば良いのだが、その場合は一つ注意する事がある。[スタート] メニューにショートカットがあるシステム情報ツールの実行ファイル (msinfo32.exe) は Windows XP の場合パスが通っていない場所にあるので、バッチファイルにコマンドとして msinfo32.exe だけ書いても起動できないのだ。バッチファイルやコマンド プロンプトからシステム情報を起動するには、以下のようにフルパスを付けてコマンドを記述しないといけない。
"%ProgramFiles%Common FilesMicrosoft SharedMSInfomsinfo32.exe"
また Windows Vista / Windows 7 の [スタート] メニューのシステム情報のショートカットは Windows XP とは異なる場所の msinfo32.exe を起動する。これに併せてパッチファイルのコマンドも XP の場合とは変えないといけない。
これらを踏まえて簡単なパッチ ファイルを書くと、以下のようになる。
———- (ここから) ———-
@if "%ALLUSERSPROFILE%"=="C:ProgramData" "%ProgramFiles%Common FilesMicrosoft SharedMSInfomsinfo32.exe" /nfo SERVERSHARE%COMPUTERNAME%.nfo
@if "%ALLUSERSPROFILE%"=="C:Documents and SettingsAll Users" %SystemRoot%system32msinfo32.exe /nfo SERVERSHARE%COMPUTERNAME%.nfo
———- (ここまで) ———-
※ Windows XP と Windows Vista/Windows 7 の区別には、環境変数 ALLUSERSPROFILE の内容の違いを利用している。
このバッチファイルを各コンピューターでダブルクリックして実行すれば、それだけでサーバー上の共有フォルダーに各コンピュータ名のついたファイルが作成される。
情報収集についてはまだ書きたい事があるので、もう一回続ける。