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

41050
Devin

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

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

  • HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Hotfix \ KB nnnn .

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

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

5 ответов на вопрос

11
David

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

Updates Updates

Да, я только что понял это сам. Я не думал, что там будут исправления, но я ошибался. Devin 11 лет назад 0
Хотя на самом деле это работает, попытка идентифицировать конкретное исправление может быть болезненной. Как я уже знал, этот метод использовался в [решении PowerShell 2.0] (http://superuser.com/a/736267/95106) от [@oleschri] (http://superuser.com/users/77310/oleschri) который работал отлично. Lankymart 9 лет назад 2
Помните, что вы можете искать определенный номер исправления с помощью верхней правой панели поиска. Steven M. Vascellaro 7 лет назад 1
9
oleschri

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

PS> Get-HotFix 

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

PS> Get-HotFix -ID "KB2799904" 

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

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

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

Лучше: `Get-HotFix -ID KB2799904`. Это может даже работать немного быстрее, если он преобразуется в фильтр WMI, а не фильтруется по факту. Christian 9 лет назад 1
@ Кристиан, я обновил ответ. oleschri 9 лет назад 0
Вам даже не нужно указывать `-ID` в качестве параметра, это значение по умолчанию. Итак, get-hotfix kb2799904` Nacht 8 лет назад 2
3
Ƭᴇcʜιᴇ007

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

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

enter image description here

Это единственный способ, которым я знаю, как это сделать. имейте в виду, что версии файлов и даты файлов могут быть изменены в будущем, так что имейте это в виду. Ramhound 11 лет назад 2
Как бы вы узнали, какие файлы проверять (если не все)? Предположим, что обновления A и B обновляют файл F до версии X. Но только обновление B содержит критическое исправление файла G (который вам неизвестен), который вас интересует. Как бы вы использовали этот метод, чтобы убедиться, что файл G имеет Критическое исправление, не зная, что файл G? Florian Winter 7 лет назад 0
2
syneticon-dj

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

C:\Users\user> systeminfo [...] Hotfix(s): 88 Hotfix(s) Installed. [01]: KB2032276 [02]: KB2296011 [03]: KB2305420 [...] 
Проблема с этим методом в том, что список обновлений потенциально неполон. Действительно, я сам столкнулся с этим в Win7. Кажется, макс на 245 обновлений. Возможное объяснение: https://support.microsoft.com/en-us/help/2644427/systeminfo.exe-does-not-display-all-updates-in-windows-server-2003 Jimadine 7 лет назад 0
0
Moab

Use this WMIC command in an elevated command prompt to get a list of all hotfixes installed. This will not include any updates that were deleted using Disk Cleanup>cleanup system files>windows update cleanup.

wmic qfe