【Script】Win32_ServerFeature と Win32_OptionalFeature でWinodwsの機能をリストする

Windowsコンポーネントのインストール状況をスクリプトから知りたい!という要望は、結構多いと思います。 Windows Server 2003およびWindows XP以前は、レジストリから収集する必要があったため、いま一感が強かったのですが、Windows Server 2008、Windows Server 2008 R2, Windows 7 では WMIの機能がアップデートされ、スクリプトから簡単に情報を収集することができるようになりました。 ※Windows Server 2003、XP以前のOSでもエレガントにできるよ!という方がいらしたら ※ぜひともお知らせください! インストールされているWindowsコンポーネントの一覧を取得するために、新たに2つのクラスが用意されました。 Win32_ServerFeature ※Windows Server 2008でも使えます Win32_OptionalFeature ※Windows Server 2008 R2/Windows 7 でサポートされています 前者はWindows Server にインストールされている役割と機能の一覧を表示することができます。ただし、どんな役割/機能が用意されているのかを知ることができません。 後者を使用すると、Windows Server 2008 R2/Windows 7 のすべての役割と機能の一覧を表示し、かつそれぞれがインストールされているか否かを知ることができます。 Win32_ServerFature を使用したサンプルを TechNet のスクリプトギャラリーに投稿しましたので、ご覧ください。 http://gallery.technet.microsoft.com/ScriptCenter/ja-jp/56ac6367-bbcb-4c8c-8c4d-caa92c6d070e 実行すると、以下のように出力されます。ツリー構造にして表示する部分で苦労しました…。 Win32_OptionaFeatureについては、また後日ということで…。


【Script】Windows Server 2008/R2 にインストールされている役割と機能の一覧表示

以下をメモ帳にコピペして、拡張子vbsで保存してください。 スクリプトギャラリーには、その他のサンプルがたくさん!! —ここから  strComputer = “.” Set objDic_Name = CreateObject(“Scripting.Dictionary”)Set objDic_Parent = CreateObject(“Scripting.Dictionary”)Set objDic_Tree = CreateObject(“Scripting.Dictionary”) Set objWMIService = GetObject(“winmgmts:\\” & strComputer & “\root\cimv2”)Set colFeatureList = objWMIService.ExecQuery(“SELECT * FROM Win32_ServerFeature”) For Each n in colFeatureList objDic_Name.Add n.ID, n.Name objDic_Parent.Add n.ID, n.ParentID ‘Wscript.Echo n.ID & “:” & n.Name & “:” & n.ParentIDNext strFunctions = “” For Each ID in…