2014年10月21日火曜日

[PowerShell] インストールプログラムの検索


インストールされている、.NET Frameworkのバージョンを表示

PS C:\Users\test> gwmi win32_product -filter "Name='Microsoft .NET Framework 4
.5.1'" | Select-Object Name, Version
Name                                    Version
----                                    -------
Microsoft .NET Framework 4.5.1          4.5.50938


ワイルドカードを使用すると・・・


PS C:\Users\test> gwmi win32_product -filter "Name like '%.NET Framework%'"| S
elect-Object Name, Version
Name                                    Version
----                                    -------
Microsoft .NET Framework 4.5.1 (JPN)    4.5.50938
Microsoft .NET Framework 4.5.1          4.5.50938


WMIクエリとなるため、 like パーセント(%) としてワイルドカード検索します

検索できるプログラムは、Windows インストーラーに対応している必要があります





Win32_Product で表示されない場合は、Win32_SoftwareFeature

PS C:\Users\test> gwmi win32_softwarefeature -filter "Name like '%KB2979%'"| S
elect-Object Name, Version
Name                                    Version
----                                    -------
KB2979578v2                             4.5.50938




ちなみに、Get-WMIObject -filter では、アスタリスク (*) が使用できません。

http://technet.microsoft.com/ja-jp/library/hh849824(v=wps.620).aspx