環境
OS:Windows 7 Professional SP1
解説
$Sessionに入るのは、IUpdateSession Interface
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa386854(v=vs.85).aspx
のインスタンス。
$Searcherに入るのは、IUpdateSearcher Interface
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa386515(v=vs.85).aspx
のインスタンス。
$Resultsに入るのは、ISearchResult Interface
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa386077(v=vs.85).aspx
のインスタンス。
$Results.Updatesメソッドは、IUpdateCollection Interfaceを返す。
IUpdateCollection InterfaceはIUpdate Interfaceのコレクション。
IUpdateCollection Interfaceの詳細は次のURL。
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa386107(v=vs.85).aspx
$Resultに入るのは、IUpdate Interface
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa386099(v=vs.85).aspx
のインスタンス。
コード
# COMオブジェクトの作成。 $Session = New-Object -ComObject Microsoft.Update.Session # 更新ファイルを探索するオブジェクトを作成。 $Searcher = $Session.CreateUpdateSearcher() # 更新ファイルを探索。(未インストールの更新ファイルを探索) # $Results = $Searcher.Search("IsInstalled = 0 And Type = 'software'") $Results = $Searcher.Search("IsInstalled = 0") Write-Output "================================" Write-Output "===== 未インストールの更新 =====" Write-Output "================================" foreach ($Result in $Results.Updates) { Write-Output $Result.Title } # 更新ファイルを探索。(インストール済みの更新ファイルを探索) $Results = $Searcher.Search("IsInstalled = 1") Write-Output "============================" Write-Output "===== インストール済み =====" Write-Output "============================" foreach ($Result in $Results.Updates) { Write-Output $Result.Title }