12

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?

4
  • What version of Windows are the laptop's running?
    – David
    Dec 18, 2012 at 18:40
  • Windows 7 Enterprise
    – Devin
    Dec 18, 2012 at 18:42
  • 2
    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. ;) Dec 18, 2012 at 18:43
  • 2
    Touche good sir :)
    – Devin
    Dec 18, 2012 at 18:44

6 Answers 6

11

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

3
  • Yeah, I just realized that myself. I didn't think hotfixes would be in there, but I was wrong.
    – Devin
    Dec 18, 2012 at 21:10
  • 2
    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.
    – user692942
    Jul 28, 2015 at 11:04
  • 1
    Remember that you can search for a specific Hotfix number by using the top-right search bar.
    – Stevoisiak
    Jul 13, 2017 at 21:00
9

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.

3
  • 1
    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, 2015 at 14:43
  • @Christian I updated the answer.
    – oleschri
    Sep 8, 2015 at 11:52
  • 2
    You don't even need to specify -ID as a parameter, it defaults to it. So get-hotfix kb2799904
    – Nacht
    Feb 25, 2016 at 1:30
3

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

2
  • 2
    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, 2012 at 18:44
  • How would you know which files to check (if not all of them)? Assume updates A and B both update file F to version X. But only update B contains a critical fix to file G (which is unknown to you) which you are interested in. How would you use this method to make sure file G has the critical fix without knowing what file G is? May 18, 2017 at 6:52
2

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
[...]
1
0

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

-1

None of the above gave me satisfaction so I tried to re-install & it came up with KBxxxx "already Installed" so that is a good method of proof,

0

You must log in to answer this question.

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