Skip to main content

How to list all Windows updates easily

There are several ways to list all Windows updates using PowerShell. I will share 3 of them in this post.

Microsoft releases Windows updates on the second Tuesday of each month. It is called Patch Tuesday. Users likely to install and start using these updates on following Wednesday.

If you want to see which updates were installed in the past, you can go to “Control Panel > Programs and Features > Installed Updates“. This is a quick way to list all Windows updates but this list is not easy to copy or edit. Use the commands below to get a text-based list of the updates.

List all Windows updates
Windows updates in Programs and Features window

List all Windows updates

The easiest way to retrieve this list is that using WMI (Windows Management Instrumentation):

  1. Go to “Start” and search for “PowerShell
  2. Run the command below

Get-WmiObject -Class "win32_quickfixengineering"

List all Windows updates
Windows updates in PowerShell

Source of the command above is here.

In some cases, you may need to export this list to an Excel file. Extend the command above as the one below. It will export the list to an Excel file and save it to your desktop.

Get-WmiObject -Class "win32_quickfixengineering" | Export-Csv -NoType "$Env:userprofile\Desktop\Updates.csv"

Looking for support dates for Microsoft updates? Check this out.

Alternatives

Here are 2 alternatives to list all Windows updates in your machine. They basically give the same results in different formats (They may require PowerShell to be opened as Administrator).

Alternative 1:

wmic qfe

Alternative 2:

Get-Hotfix | Select PSComputerName, InstalledOn, Description, HotFixID, InstalledBy

Bonus

The script below gives a detailed list of the updates. It shows failed ones and Windows Defender security updates too. However, I wasn’t able to see some of the updates listed with the commands above in this list. Still, it gives an idea of scripting for this purpose.

$Session = New-Object -ComObject "Microsoft.Update.Session"
$Searcher = $Session.CreateUpdateSearcher()
$historyCount = $Searcher.GetTotalHistoryCount()
$Searcher.QueryHistory(0, $historyCount) | Select-Object Date,@{name="Operation"; expression={switch($_.operation){1 {"Installation"}; 2 {"Uninstallation"}; 3 {"Other"}}}}, @{name="Status"; expression={switch($_.resultcode){1 {"In Progress"}; 2 {"Succeeded"}; 3 {"Succeeded With Errors"};4 {"Failed"}; 5 {"Aborted"} }}}, Title, Description | Export-Csv -NoType "$Env:userprofile\Desktop\Windows Updates.csv"

The command above is courtesy of My IT Notes.

One thought to “How to list all Windows updates easily”

Leave a Reply

Your email address will not be published. Required fields are marked *