Какой самый полный способ проверить примененные 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 отличный, но показательный. Я пытаюсь вспомнить обстоятельства, которые делают его недействительным. Я вернусь к этому.