web-dev-qa-db-ja.com

コマンドラインから保留中のWindowsUpdateを一覧表示する

wmic qfe listシステムにインストールされているWindowsUpdateのリストが表示されます。

インストールされていないもののリストを取得するにはどうすればよいですか(非表示になっているかどうかを含む)?

開発中の別のプログラムでリストを使用したいので、出力はcsvやタブ区切りなどのファイル内のある種のテーブルである必要があります。

2
Superbest

コマンドラインではありませんが、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拡張子を付けて保存します。

3
w32sh

利用可能な更新を一覧表示する簡単な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
1
Will