WindowsUpdateの未インストール・インストール済み更新ファイルを表示。

環境

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
}

コメント

タイトルとURLをコピーしました