連載
» 2014年08月11日 18時00分 UPDATE

ITプロ必携の超便利システム管理ツール集(3):背景に情報を表示するだけが能じゃない!「BgInfo」でインベントリ収集

今回もSysinternalsの古参ツールから「BgInfo」を紹介します。デスクトップの背景にシステム情報を表示する便利なツールですが、“表示しない使い方”があるのを知っていますか?

[山市良,テクニカルライター]
「ITプロ必携の超便利システム管理ツール集」のインデックス

連載目次

今回紹介するツール

[ツール名]BgInfo

[対象]Windows

[提供元]マイクロソフト

[ダウンロード先][URL]http://technet.microsoft.com/ja-jp/sysinternals/bb897557.aspx(Bginfo.zip形式)/[URL]http://live.sysinternals.com/bginfo.exe(ツールを直接ダウンロードして実行)


Microsoft Azureにも採用されているシステム情報取得ツール

 「BgInfo」は、その名前が示す通り、「Windowsデスクトップの背景(Background)にシステム情報(Information)を表示する」ツールです。「Windows Sysinternals」の中でも古いツールの一つですが、2014年2月からはMicrosoft Azureでも採用されました。Microsoft Azure仮想マシンでVM(仮想マシン)エージェントを有効にすると既定で「BgInfo拡張」が導入され、デスクトップの背景にゲストOSの情報を表示するようになっています。

 BgInfoをオプションなしで実行すると、GUIの設定画面が10秒間表示され、その後、デスクトップの現在の壁紙のイメージのコピーに、PCから収集したシステム情報を合成して壁紙を変更し、終了します(画面1)。

画面1 画面1 BgInfoは実行時にPCのシステム情報を収集し、壁紙を書き換えるツール。この使い方が一般的

 GUIが表示されている10秒以内に[Time remaining:残り秒数]ボタンをクリックすることで、定義済みフィールドを追加したり、削除したり、ラベルを変更したりして、背景に表示する情報をカスタマイズできます。カスタマイズした設定をBgInfoファイル(拡張子.bgi)に保存すれば、同じ設定で別のPCの背景を構成できます。例えば、次のようなコマンドラインを実行すれば、保存しておいたBgInfoファイルで、GUIを表示させることなく、壁紙を変更することができます。

BgInfo.exe <BgInfoファイルのパス(.bgi)> /timer:0 /silent /accepteula


 BgInfoは壁紙を一度変更したら、それで終了してしまいます。背景に表示されているのは、前回実行時の“過去の情報”であり、リアルタイムの情報を表示しているわけではありません。そのため、BgInfoを活用しているシステム管理者の多くは、「スタートアップ」フォルダーに上記のようなコマンドラインを記述したバッチファイル(拡張子.cmdまたは.bat)を登録したり、レジストリの「HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\Run」キーや「HKEY_CURRENT_USER\Microsoft\Windows\CurrentVersion\Run」キー、タスクスケジューラのタスクにコマンドラインを設定したりして、ログオン時に自動実行するように構成していることでしょう。

表示可能な情報は無限!カスタムフィールドを使いこなせ

 BgInfoは定義済みの既定のフィールドだけでさまざまな情報を取得し、デスクトップの背景に表示させることができます。ただし、最新バージョンのOS情報を正しく取得するには、最新版のBgInfoを使用してください。例えば、古いバージョンのBgInfoでは、Windows 8.1が「Windows NT 6.2」と表示されます。

 BgInfoに表示できるシステム情報は、事実上、無限です。既定のフィールドに目的のものが存在しない場合は、「カスタムフィールド」(ユーザー定義フィールド)として作ればよいのです。

 BgInfoでは、環境変数(Environment variable)、レジストリ値、WMI(Windows Management Instrumentation)クエリの実行結果、特定のファイルのバージョン情報、特定のファイルのタイムスタンプ、テキストファイルの内容、VBScriptの実行結果などをカスタムフィールドに表示させることができます。

 環境変数やWMIクエリは、ドロップダウンリストから項目を選択して定義できるので、とても簡単です。VBScriptは、WScriptオブジェクトを使用できないという制限があることだけに注意してください(画面2)。「WScript.Echo」は「Echo」で代替できます。

画面2 画面2 VBScriptコードの実行結果をカスタムフィールドにできるので、BgInfoで取得できる情報は無限といっても過言ではない

 また、Microsoft Azureと同じように、「HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\Run」キーにコマンドラインを登録することで、ユーザーログオン時に自動実行させたりすることも可能です。

背景を変更せずに、情報収集だけを行うには?

 ここまでは、BgInfoの普通の使い方です。BgInfoを利用したことがある人にとっては、常識の範囲でしょう。では、BgInfoで「デスクトップの背景を表示しない」という使い方はご存じでしょうか。

 前述のように、BgInfoで取得できる情報は無限大です。取得した情報を背景に表示させるためだけに使用するのは、よく考えればとてもモッタイナイことです。BgInfoが取得、表示する情報は、実はエンドユーザーにとってはどうでもよいものばかりです。自分の壁紙を汚されたと思われるかもしれません。

 そこで、IT管理者としての使い方としては、デスクトップの背景に表示させずに、情報収集だけに利用するのです。PCのインベントリ情報として一カ所に集めることができれば、専用のシステム管理製品を導入していない(または導入できない)中小規模のIT環境の管理にきっと役立つでしょう。専用のシステム管理製品は、小規模では大げさすぎたり、高価だったりする場合があります。

 BgInfoは、そのような使い方のための機能を標準装備しています。BgInfoのGUI画面で「File」メニューから「Database」を選択すると、BgInfoが取得したシステム情報をデータベースレコードとして「カンマ区切りテキストファイル(.txt)」「Excelワークシート(.xls)」「Accessデータベース(.mdb)」「SQL Serverデータベース(無償のExpressエディションを含む)」に書き込むように構成することができます(画面3)。

画面3 画面3 BgInfoが取得したシステム情報を共有フォルダーのExcelワークシートに書き込むように構成したところ

 ファイルに出力するには、パスを含むファイル名に適切な拡張子を指定するだけです。SQL Serverデータベースを指定した場合は、初回実行時に指定したデータベース(データベースは存在すること)内にテーブルが新規作成され、以降は同じテーブルに書き込まれるという動作になります。なお、ファイルやデータベースへの出力は、PCごとに1回だけ行うこともできますし、BgInfoを実行するたびに新しいレコードを追加するように構成することも可能です。

 ファイルやデータベースに書き込まれるデータは、BgInfoのGUI画面で設定した「ラベル名(ラベル名:)」と「フィールドの値(<フィールド名>)」と同じものです。例えば、テキストファイルを選択した場合は、1行目にラベル名、2行目以降に値が、カンマ区切りで書き込まれます。

 ただし、このままではデスクトップの背景にも表示されてしまうので、「Desktops」ボタンをクリックして、「User Desktop:」を既定の「Update this wallpaper」から「Do not alter this wallpaper」に変更します(画面4)。これでBgInfoはファイルまたはデータベースにレコードを書き込んだら、デスクトップの背景には何もせずに終了するようになります。

画面4 画面4 BgInfoがデスクトップの背景を変更しないように構成する

 あとは「File」メニューの「Save as」コマンドで、BgInfoの設定をBgInfoファイル(拡張子.bgi)に保存して、前述のコマンドラインを各PCで自動実行するようにPCの「スタートアップ」フォルダーやレジストリ、タスクスケジューラを構成します。

 ファイルに出力する場合、複数のPCからの書き込みが重なると排他制御が問題になることが予想されます。この問題を回避するには、ファイル名を例えば「bginfo_%COMPUTERNAME%.txt」のように指定して、PCごとにファイルを分けるとよいでしょう。あるいは、リモートのSQL Serverデータベース(Expressエディションは不可)に書き込むように構成する方法もあります。ただし、SQL Serverデータベースを使用する場合は、データベースやテーブルに対するアクセス許可の管理をどうするかという課題はあります。

 なお、BgInfoでExcelワークシートに書き込むように構成した場合、作成されるExcelワークシートは最新のExcel 2013では「Excel 3ワークシート」と認識され、ファイル制限機能が働きます。具体的には保護ビューでワークシートが開かれ、編集や保存ができない状態になります(画面5)。

画面5 画面5 BgInfoによりExcelワークシートやテキストファイル(拡張子は.txtだが、中身はCSV)に書き込まれたPCのシステム情報

 BgInfoのためにExcelのセキュリティを緩和するのは決して適切ではないと思いますので、テキストファイルに出力する方が実用的でしょう。ちなみに、Accessデータベース(.mdb)はAccess 2002-2003ファイル形式と認識されます。ExcelやAccessの出力ファイルの形式を見ると、BgInfoがとても古くからあるツールであることが分かるでしょう。

「ITプロ必携の超便利システム管理ツール集」バックナンバー

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2014)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手がける。個人ブログは『山市良のえぬなんとかわーるど』。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。