【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つのクラスが用意されました。

前者はWindows Server にインストールされている役割と機能の一覧を表示することができます。ただし、どんな役割/機能が用意されているのかを知ることができません。

後者を使用すると、Windows Server 2008 R2/Windows 7 のすべての役割と機能の一覧を表示し、かつそれぞれがインストールされているか否かを知ることができます。

Win32_ServerFature を使用したサンプルを TechNet のスクリプトギャラリーに投稿しましたので、ご覧ください。

https://gallery.technet.microsoft.com/ScriptCenter/ja-jp/56ac6367-bbcb-4c8c-8c4d-caa92c6d070e

実行すると、以下のように出力されます。ツリー構造にして表示する部分で苦労しました…。

image

Win32_OptionaFeatureについては、また後日ということで…。