Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

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?

share|improve this question
What version of Windows are the laptop's running? – David Dec 18 '12 at 18:40
Windows 7 Enterprise – Devin Dec 18 '12 at 18:42
That article suggesting to look in the registry is for Windows NT 4.0, and that's it. I'm assuming you aren't running NT 4.0. ;) – Ƭᴇcʜιᴇ007 Dec 18 '12 at 18:43
Touche good sir :) – Devin Dec 18 '12 at 18:44
up vote 9 down vote accepted

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.

Updates Updates

share|improve this answer
Yeah, I just realized that myself. I didn't think hotfixes would be in there, but I was wrong. – Devin Dec 18 '12 at 21:10
Although this works actually trying to identify a particular Hotfix can be painful. As I already knew of this method went with the PowerShell 2.0 solution by @oleschri which worked great. – Lankymart Jul 28 '15 at 11:04

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.

share|improve this answer
Better: Get-HotFix -ID KB2799904. That may even run a bit faster if it translates into a WMI filter rather than filtering after the fact. – Christian Sep 2 '15 at 14:43
@Christian I updated the answer. – oleschri Sep 8 '15 at 11:52
You don't even need to specify -ID as a parameter, it defaults to it. So get-hotfix kb2799904 – Nacht Feb 25 at 1:30

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):

enter image description here

share|improve this answer
This is pretty much the only way I know how to do this. keep in mind the file versions and file dates could be changed in the future so keep that in mind. – Ramhound Dec 18 '12 at 18:44

As a more generic (or scriptable) way to do this, you could employ systeminfo which does print a section with a list of hotfixes installed:

C:\Users\user> systeminfo
Hotfix(s):                 88 Hotfix(s) Installed.
                           [01]: KB2032276
                           [02]: KB2296011
                           [03]: KB2305420
share|improve this answer

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

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .