Determine if Windows HotFix has been applied
I recently fixed a defect in our product by applying Microsoft hotfix. Some of our customers are still reporting that the issue remains with the hotfix applied. They are using pretty tightly controlled laptops and can't just apply the hotfix themselves. I want to know if there is some way I can check if a hotfix has been applied.
This article and this thread suggest that a hotfix applied with the hfx.exe program will appear in the registry under:
- HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Hotfix\KB nnnn.
However, I see no "Hotfix" key under CurrentVersion (also, I didn't apply the hotfix with hfx.exe, I just ran the file I downloaded from Microsoft and it did the trick). Is there another way to determine if it has been applied?
You can see what updates have been installed on a computer by going to Add/Remove Programs and then clicking View installed updates. The search box comes in very handy here.
You can use PowerShell 2.0 or greater to detect which hotfixes are installed.
PS> Get-HotFix
To detect whether a specific hotfix (e.g. KB2799904) is installed, write:
PS> Get-HotFix -ID "KB2799904"
PS> Get-HotFix | where { $_.HotFixID -eq "KB2799904" }
If this returns at least one object, the hotfix is installed.
You can also specify a remote computer with the -ComputerName
parameter if you have sufficient permissions on that computer.
The hotfix's KB article should show file information for what it is updating. They provide version numbers, file sizes and expected time-stamps. If your files match those (or are newer) then you've got the fix (or a newer one that incorporates the older one) applied.
For example (from KB923293):