Какой самый полный способ проверить примененные KB на компьютере с Windows?

Я использую Powershell, чтобы запустить состояние списка КБ и посмотреть, применяются они или нет.

Я нашел несколько способов, и я видел несоответствия с числами, о которых они сообщают. Какой правильный?

Ты можешь проверить SYSTEMINFO и получите список исправлений. Вы также можете использовать Get-Hotfix командлет, который является псевдонимом для gwmi Win32_QuickFixEngineering или вы можете использовать wmic qfe list (WMI-C LIQuick F ix Инженерный список).

Итак, почему я получаю разные цифры, когда я делаю быстрый подсчет?

т.е. (Get-HotFix).Count а также (wmic qfe list).Count

Использование этих двух возвращает 153 и 310 соответственно.

Что дает? Почему он возвращает разные значения? Все ли примененные КБ не перечислены в Get-Hotfix командлет?

Прежде чем кто-либо спросит, да, я перезапустил машину, и я не применял ни одной, так как она была перезапущена и обновлена. Это первый день...

1 ответ

WMIC имеет неясные пустые строки, которые могут немного запачкать воду. Вот простой, не очень хороший парсер для wmic qfe (Windows 10, так что кто знает, будет ли он транспонироваться).

Надеюсь, что вы можете сравнить списки.

$qfe = wmic qfe list brief | Select-Object -Skip 1 | Where-Object { $_.Trim().Length -gt 0 } | ForEach-Object {
    [PSCustomObject]@{
        Description = $_.Substring(0, 17).Trim()
        HotFixId    = $_.Substring(30, 10).Trim()
    }
}
Compare-Object (Get-HotFix) $qfe -Property HotFixID -IncludeEqual

Так этого достаточно? Нет, не совсем. QFE отличный, но показательный. Я пытаюсь вспомнить обстоятельства, которые делают его недействительным. Я вернусь к этому.

Другие вопросы по тегам