# what: lists missing windows updates, compares to offline repo
# when: manual/scheduled, especially after patch tuesdays
# who: ibi c/o doctordeploy.com
# whose: CC BY-SA 4.0 - provided as-is, use at your own risk. tested only with win 8.1
# based on https://msdn.microsoft.com/en-us/library/windows/desktop/aa387290(v=vs.85).aspx
# where: needs wsusscn2.cab in c:\temp as you've already figured out
# - located at [wsusofflinedir]\client\wsus
# - downloadable at http://go.microsoft.com/fwlink/?LinkId=76054
$UpdateSession = New-Object -ComObject "Microsoft.Update.Session"
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()
$UpdateServiceManager = New-Object -ComObject "Microsoft.Update.ServiceManager"
$UpdateService = $UpdateServiceManager.AddScanPackageService("Offline Sync Service", "c:\temp\wsusscn2.cab")
write "Searching for Updates. Please wait..."
$UpdateSearcher.ServerSelection = 3
$UpdateSearcher.ServiceID = $UpdateService.ServiceID
$SearchResult = $UpdateSearcher.Search("IsInstalled=0")
$Updates = $SearchResult.Updates
write "List of applicable items on the machine when using wsusscn2.cab:"
$Updates | select title, type, ismandatory, maxdownloadsize, lastdeploymentchangetime | fl
# use e.g. "$Updates | tee \\server1\logs\mua_$env:computername.log" to redirect output to file
Comments