プロジェクト

全般

プロフィール

Windows Management Instrumentation

WMI: Windows Management Instrumentation は、Windows OSのシステム情報の収集・監視・管理を行う仕組みです。ローカルおよびリモートを対象とします。

利用別操作方法

インストールされているソフトウェアの情報を取得する

Windows OSにWindowsインストーラ(MSI形式)を使ってインストールされているソフトウェアの情報を収集できます。
インストールされているとは、コントロールパネルのプログラムのアンインストールに一覧されるソフトウェアが対象となります。
Windowsインストーラ形式ではないもの(Inno Setup、NullSoftのNSIS、他)でインストールされたソフトウェアの情報は取得できません。

ローカルコンピュータにインストールされているソフトウェア情報

PowerShellで以下を実行します。

PS >  Get-WmiObject -Class Win32_Product | Select Name,Version | Format-List

実行結果は以下のようになります。

Name    : Java 8 Update 72 (64-bit)
Version : 8.0.720.15

Name    : Java SE Development Kit 8 Update 72 (64-bit)
Version : 8.0.720.15

リモートコンピュータにインストールされているソフトウェア情報

リモートコンピュータにアクセスするための認証情報(ユーザーとパスワード)を指定して実行する場合は次のコマンドとなります。

PS > $password = "hogehoge" | ConvertTo-SecureString -asPlainText -Force
PS > $credential = New-Object System.Management.Automation.PSCredential("foobar",$password)
PS>  Get-WmiObject -Class Win32_Product -ComputerName 192.168.1.111 -Credential $credential | Select Name,Version | Format-List
  :(略)

クエリ(-query)で絞り込み

PowerShellのパイプで絞り込みをするので十分かもしれませんが、リモートの情報が大量だと全部持ってきてから絞り込むよりリモート側で絞り込んだ方がよいことがあるかもしれません。そのときは、queryオプションを指定します。

PS > Get-WmiObject -query "SELECT Name,Version FROM Win32_Product WHERE Name LIKE 'Java%'" 

__GENUS          : 2
__CLASS          : Win32_Product
__SUPERCLASS     :
__DYNASTY        :
__RELPATH        :
__PROPERTY_COUNT : 2
__DERIVATION     : {}
__SERVER         :
__NAMESPACE      :
__PATH           :
Name             : Java SE Development Kit 8 Update 72 (64-bit)
Version          : 8.0.720.15
PSComputerName   :

PowerShellのパイプで絞り込みし特定情報を表示

PowerShellのパイプで絞り込みを行い、必要な項目だけを表示します。

PS > Get-WmiObject Win32_Product | where {$_.Name -match "^Java SE.*"} | foreach {Write-Host $_.Version}
8.0.720.15

名前とバージョン、識別子(Product ID)を表示します。

PS > Get-WmiObject Win32_Product | where {$_.Name -match "^Java SE.*"} | `
>> foreach {Write-Host $_.Name, $_.Version, $_.IdentifyingNumber}
Java SE Development Kit 8 Update 72 (64-bit) 8.0.720.15 {64A3A4F4-B792-11D6-A78A-00B0
D0180720}


ほぼ8年前に更新