added show-updates script

This commit is contained in:
Michael H.G. Schmidt 2024-07-30 12:24:48 +02:00
parent c24e98d189
commit 6709cef641
2 changed files with 49 additions and 0 deletions

6
tools/show-updates.cmd Normal file
View File

@ -0,0 +1,6 @@
@echo off
call check-for-admin
if %ERRORLEVEL% neq 0 exit /b
powershell -command %TOOLS%\show-updates.ps1

43
tools/show-updates.ps1 Normal file
View File

@ -0,0 +1,43 @@
# show all 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 history starting with the first record
$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
Write-Output $_
}
# Remove null records and only return the fields we want
$history |
Where-Object {![String]::IsNullOrWhiteSpace($_.title)} |
Select-Object Result, Date, Title
}
Get-WuaHistory | Format-Table