2

wmic qfe list дает мне список обновлений Windows, установленных в моей системе.

Как я могу получить список тех, которые не установлены (включая, были ли они скрыты)?

Я хочу использовать список в другой программе, которую я разрабатываю, поэтому мне нужно, чтобы выходные данные представляли собой какую-то таблицу в файле, например csv или tab-delimited.

2 ответа2

3

Не из командной строки, но думал, что этот скрипт из MSDN может помочь.

Источник: WU Searcher WMI скрипт из MSDN

Поиск 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 .

1

Вот быстрый скрипт powershell для вывода списка доступных обновлений, если ничего не возвращается, то обновления недоступны. Ниже перечислены два параметра для $ r, вы можете увидеть, как они отличаются.

$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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .