PowerShell Windows Updates: Retrieving Your Update History

Listing Installed Windows Updates with PowerShell If you need to check exactly which updates are installed on a machine — particularly useful on Windows Server Core or any environment without a GUI, where you can’t just open the Settings app and browse the update history — PowerShell gives you a fast, scriptable way to pull […]

Retrieve Installed Windows Updates With Powershell

Listing Installed Windows Updates with PowerShell

If you need to check exactly which updates are installed on a machine — particularly useful on Windows Server Core or any environment without a GUI, where you can’t just open the Settings app and browse the update history — PowerShell gives you a fast, scriptable way to pull the full list.
Get-HotFix | Sort-Object InstalledOn -Descending | Format-Table -AutoSize
Get-HotFix returns every update recorded in the machine’s update history, including the KB number, description, and install date, sorted here with the most recent first. If you want to check for one specific update rather than list everything, filter by KB number:
Get-HotFix -Id KB5000000
One thing worth knowing: Get-HotFix relies on the Windows Update / CBS metadata it queries, and very occasionally misses updates applied through certain non-standard methods, such as some offline servicing scenarios. If you need a fully authoritative picture, cross-check against the CBS log directly, but for day-to-day patch verification, Get-HotFix is the quick, reliable option most admins reach for first.

Still Current, With a Known Gap (Updated for 2026)

Get-HotFix remains fully present and functional on current Windows Server (including Server 2025) and Windows 11, in both Windows PowerShell 5.1 and PowerShell 7. The gap worth knowing about is a documented one, not a rumour: Microsoft’s own reference confirms the cmdlet wraps the Win32_QuickFixEngineering WMI class, which only reflects Component-Based Servicing updates — updates delivered via MSI or pulled straight from the Microsoft Update Catalog don’t show up in its output at all. For day-to-day “did this KB land” checks it’s still the fastest option, but don’t treat it as a complete patch inventory. If you need fuller history, the community PSWindowsUpdate module’s Get-WUHistory cmdlet covers more ground, and for fleet-wide reporting, Windows Update for Business reports (via Intune/Azure) are the current enterprise-recommended approach rather than querying machines one at a time.

Resources

🛠️

Gear We Recommend

Testing configs is easier with a dedicated admin machine set up right. Here’s the kit we use.

Browse our Windows Admin Toolkit picks on Amazon

As an Amazon Associate, TechyGeeksHome earns from qualifying purchases.


Discover more from TechyGeeksHome

Subscribe to get the latest posts sent to your email.

Andrew Armstrong

Andrew Armstrong is a UK-based IT professional with 26+ years of hands-on experience in Windows, Windows Server, SCCM/ConfigMgr, Active Directory, PowerShell, and enterprise infrastructure.

He founded TechyGeeksHome in 2010 and has published over 1,500 practical guides covering real-world IT problems and solutions. When not solving IT problems,

Andrew develops free Windows utilities including Ultimate Settings Panel, which has been downloaded over 850,000 times.