Определите, было ли применено исправление Windows

12

Недавно я исправил дефект в нашем продукте, установив исправление Microsoft. Некоторые из наших клиентов все еще сообщают, что проблема остается с исправлением. Они используют довольно жестко контролируемые ноутбуки и не могут просто применить исправление самостоятельно. Я хочу знать, есть ли способ проверить, было ли применено исправление.

В этой статье и этой теме предполагается, что исправление, примененное с помощью программы hfx.exe, появится в реестре в разделе:

  • HKEY_LOCAL_MACHINE \ Программное обеспечение \ Microsoft \ Windows NT \ CurrentVersion \ Исправление \ KB nnnn .

Тем не менее, я не вижу клавиши «Исправление» под CurrentVersion (также я не применил исправление с hfx.exe, я просто запустил файл, который я скачал из Microsoft, и он добился цели). Есть ли другой способ определить, был ли он применен?

Девин
источник
Какая версия Windows работает на ноутбуке?
Дэвид
Windows 7 Enterprise
Девин
2
Эта статья, предлагающая поиск в реестре, предназначена для Windows NT 4.0, и все. Я предполагаю, что вы не используете NT 4.0. ;)
Ƭᴇcʜιᴇ007
2
Прикоснись, сэр :)
Девин

Ответы:

11

Чтобы узнать, какие обновления были установлены на компьютере, перейдите в раздел «Установка и удаление программ» и нажмите « Просмотр установленных обновлений» . Окно поиска здесь очень удобно.

Обновления Обновления

Дэвид
источник
Да, я просто понял это сам. Я не думал, что там будут исправления, но я ошибался.
Девин
2
Хотя на самом деле это работает, попытка определить конкретное исправление может быть болезненной. Как я уже знал, этот метод использовался в решении PowerShell 2.0 от @oleschri, которое отлично работало.
Lankymart
1
Помните, что вы можете искать определенный номер исправления с помощью верхней правой панели поиска.
Stevoisiak
9

Вы можете использовать PowerShell 2.0 или выше, чтобы определить, какие исправления установлены.

PS> Get-HotFix

Чтобы определить, установлено ли конкретное исправление (например, KB2799904), напишите:

PS> Get-HotFix -ID "KB2799904"

PS> Get-HotFix | where { $_.HotFixID -eq "KB2799904" }

Если это возвращает хотя бы один объект, исправление установлено.

Вы также можете указать удаленный компьютер с -ComputerNameпараметром, если у вас достаточно прав на этом компьютере.

oleschri
источник
1
Лучше: Get-HotFix -ID KB2799904. Это может даже работать немного быстрее, если он преобразуется в фильтр WMI, а не фильтруется по факту.
Кристиан
@ Кристиан, я обновил ответ.
Олешри
2
Вам даже не нужно указывать -IDв качестве параметра, это значение по умолчанию. Итакget-hotfix kb2799904
Nacht - Восстановить Монику
3

В статье базы знаний об исправлении должна отображаться информация о файле для обновления. Они предоставляют номера версий, размеры файлов и ожидаемые метки времени. Если ваши файлы соответствуют этим (или новее), тогда вы применили исправление (или более новое, включающее более старое).

Например (из KB923293 ):

введите описание изображения здесь

Ƭᴇcʜιᴇ007
источник
2
Это единственный способ, которым я знаю, как это сделать. имейте в виду, что версии файлов и даты файлов могут быть изменены в будущем, так что имейте это в виду.
Ramhound
Как бы вы узнали, какие файлы проверять (если не все)? Предположим, что обновления A и B оба обновляют файл F до версии X. Но только обновление B содержит критическое исправление файла G (который вам неизвестен), который вас интересует. Как бы вы использовали этот метод, чтобы убедиться, что файл G имеет критическое исправление, не зная, что файл G?
Флориан Зима
2

В качестве более общего (или скриптового) способа сделать это вы можете использовать метод, systeminfoкоторый выводит раздел со списком установленных исправлений:

C:\Users\user> systeminfo
[...]
Hotfix(s):                 88 Hotfix(s) Installed.
                           [01]: KB2032276
                           [02]: KB2296011
                           [03]: KB2305420
[...]
syneticon-ди-джей
источник
Проблема этого метода в том, что список обновлений может быть неполным. Действительно, я сам столкнулся с этим в Win7. Кажется, макс на 245 обновлений. Возможное объяснение: support.microsoft.com/en-us/help/2644427/…
Jimadine
0

Используйте эту команду WMIC в командной строке с повышенными привилегиями, чтобы получить список всех установленных исправлений. Это не будет включать обновления, которые были удалены с помощью Очистка диска> очистка системных файлов> Очистка обновления Windows.

wmic qfe

Moab
источник
-1

Ничто из вышеперечисленного не принесло мне удовлетворения, поэтому я попытался переустановить его, и он обнаружил, что KBxxxx уже установлен, так что это хороший способ доказательства,

JohnP4216
источник