Sprawdź, czy zastosowano system Windows HotFix

12

Niedawno naprawiłem defekt naszego produktu, stosując poprawkę Microsoft. Niektórzy z naszych klientów nadal zgłaszają, że problem nadal występuje po zastosowaniu poprawki. Używają dość ściśle kontrolowanych laptopów i nie mogą po prostu sami zastosować poprawki. Chcę wiedzieć, czy jest jakiś sposób, aby sprawdzić, czy zastosowano poprawkę.

Ten artykuł i ten wątek sugerują, że poprawka zastosowana do programu hfx.exe pojawi się w rejestrze pod:

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

Jednak nie widzę klucza „Hotfix” w CurrentVersion (również nie zastosowałem poprawki z hfx.exe, po prostu uruchomiłem plik pobrany z Microsoft i załatwiłem sprawę). Czy istnieje inny sposób ustalenia, czy został zastosowany?

Devin
źródło
W jakiej wersji systemu Windows działa laptop?
David
Windows 7 Enterprise
Devin
2
Ten artykuł sugerujący zajrzenie do rejestru dotyczy systemu Windows NT 4.0 i to wszystko. Zakładam, że nie korzystasz z NT 4.0. ;)
ᴇcʜιᴇ007
2
Touche good sir :)
Devin,

Odpowiedzi:

11

Możesz sprawdzić, jakie aktualizacje zostały zainstalowane na komputerze, przechodząc do opcji Dodaj / Usuń programy, a następnie klikając opcję Wyświetl zainstalowane aktualizacje . Pole wyszukiwania jest bardzo przydatne tutaj.

Aktualizacje Aktualizacje

David
źródło
Tak, właśnie sobie to uświadomiłem. Nie sądziłem, że będą tam poprawki, ale się myliłem.
Devin,
2
Chociaż to działa, próba zidentyfikowania konkretnej poprawki może być bolesna. Jak już wiedziałem o tej metodzie poszło z rozwiązaniem PowerShell 2.0 firmy @oleschri, które działało świetnie.
Lankymart
1
Pamiętaj, że możesz wyszukać konkretny numer poprawki, korzystając z paska wyszukiwania w prawym górnym rogu.
Stevoisiak,
9

Za pomocą programu PowerShell 2.0 lub nowszego można wykryć, które poprawki są zainstalowane.

PS> Get-HotFix

Aby wykryć, czy jest zainstalowana konkretna poprawka (np. KB2799904), napisz:

PS> Get-HotFix -ID "KB2799904"

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

Jeśli to zwróci co najmniej jeden obiekt, poprawka zostanie zainstalowana.

Możesz również określić komputer zdalny za pomocą tego -ComputerNameparametru, jeśli masz wystarczające uprawnienia na tym komputerze.

oleschri
źródło
1
Lepiej: Get-HotFix -ID KB2799904. Może nawet działać trochę szybciej, jeśli przekłada się to na filtr WMI zamiast filtrowania po fakcie.
Christian
@Christian Zaktualizowałem odpowiedź.
oleschri
2
Nie musisz nawet określać -IDtego parametru jako domyślnego. Więcget-hotfix kb2799904
Nacht - przywróć Monikę
3

Artykuł KB poprawki powinien zawierać informacje o plikach aktualizowanych. Podają numery wersji, rozmiary plików i spodziewane znaczniki czasu. Jeśli twoje pliki są zgodne z tymi (lub nowszymi), oznacza to, że zastosowano poprawkę (lub nowszą, która zawiera starszy).

Na przykład (z KB923293 ):

wprowadź opis zdjęcia tutaj

Ƭᴇcʜιᴇ007
źródło
2
To właściwie jedyny sposób, w jaki wiem, jak to zrobić. pamiętaj, że wersje i daty plików mogą ulec zmianie w przyszłości, więc miej to na uwadze.
Ramhound,
Skąd miałbyś wiedzieć, które pliki sprawdzić (jeśli nie wszystkie)? Załóżmy, że zarówno A, jak i B aktualizują plik F do wersji X. Ale tylko aktualizacja B zawiera krytyczną poprawkę do pliku G (która jest dla Ciebie nieznana), którą jesteś zainteresowany. W jaki sposób użyłbyś tej metody, aby upewnić się, że plik G ma poprawka krytyczna bez znajomości pliku G?
Florian Winter
2

Jako bardziej ogólny (lub skryptowy) sposób, aby to zrobić, możesz użyć, systeminfoktóry wypisuje sekcję z zainstalowaną listą poprawek:

C:\Users\user> systeminfo
[...]
Hotfix(s):                 88 Hotfix(s) Installed.
                           [01]: KB2032276
                           [02]: KB2296011
                           [03]: KB2305420
[...]
syneticon-dj
źródło
Problem z tą metodą polega na tym, że lista aktualizacji jest potencjalnie niekompletna. Rzeczywiście sam na to wpadłem w Win7. Wydaje się, że osiąga maksimum przy 245 aktualizacjach. Możliwe wyjaśnienie: support.microsoft.com/en-us/help/2644427/…
Jimadine
0

Użyj tego polecenia WMIC w wierszu polecenia z podwyższonym poziomem uprawnień, aby uzyskać listę wszystkich zainstalowanych poprawek. Nie obejmie to żadnych aktualizacji, które zostały usunięte za pomocą funkcji Oczyszczanie dysku> pliki systemowe czyszczenia> czyszczenie aktualizacji systemu Windows.

wmic qfe

Moab
źródło
-1

Żadne z powyższych nie sprawiło mi satysfakcji, więc spróbowałem ponownie zainstalować i wymyśliłem KBxxxx „już zainstalowany”, więc jest to dobry sposób na dowód,

JohnP4216
źródło