Como verificar seu histórico do Windows Update com o PowerShell

Os geeks do PowerShell ficarão felizes em saber que você pode verificar seu histórico do Windows Update com o PowerShell. Francamente, usuários ainda menos experientes podem apreciar a simplicidade disso. Veja como funciona.

Pressione a tecla Windows + X e selecione Windows PowerShell (Admin). Digite em wmic qfe list.

Você verá uma lista de atualizações, incluindo o número e o link do HotFix (KB), descrição, comentários, data de instalação e muito mais. Muito legal.

Se você quiser menos informações, basta usar get-wmiobject -class win32_quickfixengineering para ver a fonte, descrição, HotFixID, InstalledBy e InstalledOn.

Você também pode obter o histórico de atualizações em computadores remotos digitando wmic /node: ‘computer name’ qfe > filename.txt..

Mas, se você quiser ficar ainda mais geek, poderá ver todas as atualizações além daquelas com IDs de Hotfix e ver todas as atualizações, incluindo .Net, Windows Defender, Adobe Flash Player e muito mais. As linhas que você precisa digitar podem parecer assustadoras, mas é seguro. Este script mostrará as últimas 50 atualizações:

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
}

Agora, digite Get-WuaHistory | FT para a lista.