さて、MSINFO32 を使って管理したいコンピュータの情報を収集する事はできたとしよう。
今度はそれぞれのコンピュータにどんなソフトウェア/アプリケーションがインストールされているのか、きっと知りたくなるだろう。単に興味があるというだけでなく、購入した正規のライセンス数以上にインストールしているアプリケーションは無いか、違法にコピーされたソフトウェアがインストールされていないか、さらには情報漏洩の危険が強い Winny や Share のような P2P ソフトウェアがインストールされていないか、確認したいというのは特に IT 管理者としては当然の事だ。
しかし前にも書いたようにコンピュータで実行可能な状態になっているアプリケーションを全て把握するのは、実は結構難しい。ソフトウェアが起動中ならシステム情報の [ソフトウェア環境] のカテゴリで [実行中のタスク] や [読み込まれているモジュール] をチェックして、どのようなソフトウェアが動作しているのか確認する事はできる。だがシステム情報を採取したタイミングで起動していないソフトウェアについては把握できない。
そこでよく利用される方法としては、[コントロール パネル] の [プログラムのアンインストール] (Windows XP なら [プログラムの追加と削除]) で表示されている項目を確認するという手がある。しかしこの方法にも問題がある。このコントロール パネルは以下のレジストリ キーに作られたアプリケーションごとのキーの値を基に表示している。
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall
ここに書かれているアプリケーションごとのキーは、それぞれのアプリケーションのインストール時に、アプリケーションのインストーラーが作成する事になっている。つまりここにキーが書かれているかどうかはアプリケーション次第であり、インストールされているアプリケーションの全てがここにキーを作成しているとは限らないという事だ。
具体的に言えば、実行ファイル一つだけで動作するようなソフトウェアなら実行ファイルを任意のフォルダーにコピーするだけでインストール完了するので、このレジストリを作成しない場合がほとんどだろう。何個かのファイルを同じフォルダに置けばそれで動作可能といったソフトウェアの場合も同様だ。
そうしたソフトウェアの有無を調べようと思ったら、コンピュータのハードディスク全体をチェックして、全ての実行ファイルをリストアップし、各実行ファイルが何と言うソフトウェアなのかを確認するしか確実な方法は無い。しかしこれが容易ではない事はすぐに予想できるだろう。
有償のシステム管理ソフト、アセット マネジメント ソフトの中には実際にこういうチェックを行い、予め登録してあるパターンと照らし合わせてどのようなソフトウェアが存在しているのか報告してくれる物もある。言い方は悪いが「お金次第」という事だ。
ただし、そこまで完璧を求めないがある程度のチェックはしておきたい…という事なら無償のツールでもある程度の事はできる。
まず Microsoft から以下のようなツールが公開されている。
これらのツールはその名称からもわかるように本来 Microsoft のサポート担当者が、サポート リクエストをしてきた顧客の環境情報を収集するために、顧客に実行してもらうためのツールだ。とは言え誰でもダウンロードして利用できるので、こういう物もある事を覚えてえいて損は無い。またこれらのツールは本来の用途がトラブル サポート用であることから、社内/組織内のサポートやトラブルシュートの際にも有用だ。
ツールの使い方については以下に良い記事があったので、そちらを参照していただきたい。
またこのツールで収集された情報を整理して表示してくれるピュアーも提供されている。
いわゆる「フリー ソフト」の類としては、以下のようなツールが利用できる。使い方などはそれぞれのツールの Web サイトを参照して欲しい。
こうしてコンピュータにインストールされているソフトウェアを調べる事は可能なのだが、どれだけ調べてもそれでユーザーが利用できる (起動できる) 全てのソフトウェアを把握し管理できる訳ではない。例えばユーザーが USB メモリから起動できるプログラムを用意する方法や、インターネットからダウンロードしたソフトウェアをその場で実行する方法であれば、事前にいくら調査していてもそれを把握する事はできない。
そういう意味で、「どんなソフトウェアがインストールされているのか」について極端に神経質になって完璧を求める事にはあまり意味は無い。問題のあるソフトウェアの利用を抑制/抑止したいのなら、プログラムの実行自体を制御するソリューションを取り入れるべきだろう。こうしたソリューションについてはいずれ改めて紹介したい。