How to Check Your Windows Update History With PowerShell
By Timothy Tibbetts |
PowerShell geeks will be happy to know that you can check your Windows Update history with PowerShell. Frankly, even less experienced users might appreciate the simplicity of this. Here's how it works.
Press the Windows Key + X and select Windows PowerShell (Admin). Type in wmic qfe list.
You will see a list of updates including the HotFix (KB) number and link, description, comments, installed date, and more. Pretty neat.

If you'd like less information simply use get-wmiobject -class win32_quickfixengineering to see the Source, Description, HotFixID, InstalledBy, and InstalledOn.

You can also get the update history on remote computers by typing in wmic /node: 'computer name' qfe > filename.txt.
But, if you want to get even geekier, you can see all the updates beyond the ones with Hotfix ID's and see all the updates including .Net, Windows Defender, Adobe Flash Player, and more. The lines you need to type might seem scary, but it's safe. This script will show you the last 50 updates:
function Convert-WuaResultCodeToName
{
param( [Parameter(Mandatory=$true)]
[int] $ResultCode
)
$Result = $ResultCode
switch($ResultCode)
{
2
{
$Result = "Succeeded"
}
3
{
$Result = "Succeeded With Errors"
}
4
{
$Result = "Failed"
}
}
return $Result
}
function Get-WuaHistory
{
# Get a WUA Session
$session = (New-Object -ComObject 'Microsoft.Update.Session')
# Query the latest 1000 History starting with the first recordp
$history = $session.QueryHistory("",0,50) | ForEach-Object {
$Result = Convert-WuaResultCodeToName -ResultCode $_.ResultCode
# Make the properties hidden in com properties visible.
$_ | Add-Member -MemberType NoteProperty -Value $Result -Name Result
$Product = $_.Categories | Where-Object {$_.Type -eq 'Product'} | Select-Object -First 1 -ExpandProperty Name
$_ | Add-Member -MemberType NoteProperty -Value $_.UpdateIdentity.UpdateId -Name UpdateId
$_ | Add-Member -MemberType NoteProperty -Value $_.UpdateIdentity.RevisionNumber -Name RevisionNumber
$_ | Add-Member -MemberType NoteProperty -Value $Product -Name Product -PassThru
Write-Output $_
}
#Remove null records and only return the fields we want
$history |
Where-Object {![String]::IsNullOrWhiteSpace($_.title)} |
Select-Object Result, Date, Title, SupportUrl, Product, UpdateId, RevisionNumber
}
Now, type in Get-WuaHistory | Format-Table for the list.

Similar:
How to View Windows Update History in Windows 10
Microsoft Patch Tuesday Explained
How to Turn Windows Update Restart Notifications On or Off
Will Windows 10 Receive Windows Updates if It's Not Activated?
How-To Delete Pending Windows Updates
How to Block or Defer Windows 10 Major Updates
How to Uninstall Windows 10 Updates
Configure When and How Windows Updates Are Delivered
comments powered by Disqus
Press the Windows Key + X and select Windows PowerShell (Admin). Type in wmic qfe list.
You will see a list of updates including the HotFix (KB) number and link, description, comments, installed date, and more. Pretty neat.

If you'd like less information simply use get-wmiobject -class win32_quickfixengineering to see the Source, Description, HotFixID, InstalledBy, and InstalledOn.

You can also get the update history on remote computers by typing in wmic /node: 'computer name' qfe > filename.txt.
But, if you want to get even geekier, you can see all the updates beyond the ones with Hotfix ID's and see all the updates including .Net, Windows Defender, Adobe Flash Player, and more. The lines you need to type might seem scary, but it's safe. This script will show you the last 50 updates:
function Convert-WuaResultCodeToName
{
param( [Parameter(Mandatory=$true)]
[int] $ResultCode
)
$Result = $ResultCode
switch($ResultCode)
{
2
{
$Result = "Succeeded"
}
3
{
$Result = "Succeeded With Errors"
}
4
{
$Result = "Failed"
}
}
return $Result
}
function Get-WuaHistory
{
# Get a WUA Session
$session = (New-Object -ComObject 'Microsoft.Update.Session')
# Query the latest 1000 History starting with the first recordp
$history = $session.QueryHistory("",0,50) | ForEach-Object {
$Result = Convert-WuaResultCodeToName -ResultCode $_.ResultCode
# Make the properties hidden in com properties visible.
$_ | Add-Member -MemberType NoteProperty -Value $Result -Name Result
$Product = $_.Categories | Where-Object {$_.Type -eq 'Product'} | Select-Object -First 1 -ExpandProperty Name
$_ | Add-Member -MemberType NoteProperty -Value $_.UpdateIdentity.UpdateId -Name UpdateId
$_ | Add-Member -MemberType NoteProperty -Value $_.UpdateIdentity.RevisionNumber -Name RevisionNumber
$_ | Add-Member -MemberType NoteProperty -Value $Product -Name Product -PassThru
Write-Output $_
}
#Remove null records and only return the fields we want
$history |
Where-Object {![String]::IsNullOrWhiteSpace($_.title)} |
Select-Object Result, Date, Title, SupportUrl, Product, UpdateId, RevisionNumber
}
Now, type in Get-WuaHistory | Format-Table for the list.

Similar:
How to View Windows Update History in Windows 10
Microsoft Patch Tuesday Explained
How to Turn Windows Update Restart Notifications On or Off
Will Windows 10 Receive Windows Updates if It's Not Activated?
How-To Delete Pending Windows Updates
How to Block or Defer Windows 10 Major Updates
How to Uninstall Windows 10 Updates
Configure When and How Windows Updates Are Delivered
comments powered by Disqus