wmic qfe list
システムにインストールされているWindowsUpdateのリストが表示されます。
インストールされていないもののリストを取得するにはどうすればよいですか(非表示になっているかどうかを含む)?
開発中の別のプログラムでリストを使用したいので、出力はcsvやタブ区切りなどのファイル内のある種のテーブルである必要があります。
コマンドラインではありませんが、MSDNのこのスクリプトが役立つと考えました。
ソース: MSDNのWU Searcher WMIスクリプト
WU利用可能な更新を検索し、それらをリストします
Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "MSDN Sample Script"
Set updateSearcher = updateSession.CreateUpdateSearcher()
WScript.Echo "Searching for updates..." & vbCRLF
Set searchResult = _
updateSearcher.Search("IsInstalled=0 and Type='Software' and IsHidden=0")
WScript.Echo "List of applicable items on the machine:"
For I = 0 To searchResult.Updates.Count-1
Set update = searchResult.Updates.Item(I)
WScript.Echo I + 1 & "> " & update.Title
Next
If searchResult.Updates.Count = 0 Then
WScript.Echo "There are no applicable updates."
WScript.Quit
End If
上記のコードセグメントは、WUで利用可能な更新を検索し、ダウンロードせずにリストします。MSDNのスクリプトの残りの部分は、利用可能な各更新をダウンロードすることです。
コードをメモ帳にコピーし、.vbs
拡張子を付けて保存します。
利用可能な更新を一覧表示する簡単なPowerShellスクリプトを次に示します。何も返されない場合は、利用可能な更新はありません。以下にリストされている$ rには2つのオプションがあり、それらの違いを確認できます。
$u = New-Object -ComObject Microsoft.Update.Session
$u.ClientApplicationID = 'MSDN Sample Script'
$s = $u.CreateUpdateSearcher()
#$r = $s.Search("IsInstalled=0 and Type='Software' and IsHidden=0")
$r = $s.Search('IsInstalled=0')
$r.updates|select -ExpandProperty Title