$localtime = 9 # UTF+$localtime $objSession = new-object -com "Microsoft.Update.Session" $objSearcher = $objSession.CreateupdateSearcher() $intCount = $objSearcher.GetTotalHistoryCount() $colHistory = $objSearcher.QueryHistory(0, $intCount) $wustatus = 0 $additionalmsg = "" $lastwudate = Get-Date #localtime if ($intCount -gt 0) { $lastwudate = ($colHistory[0].Date).AddHours($localtime) if (((Get-Date) - $lastwudate).Days -gt 30) { $wustatus = 1 $additionalmsg = "[Warning: this system has not been updated for more than 30 days.]" } } foreach ($objHistory in $colHistory) { $wudate = ($objHistory.Date).AddHours($localtime) if (($lastwudate - $wudate).Days -lt 7) { #if ((get-date($wudate) -Format "yyyyMMdd") -eq (get-date($lastwudate) -Format "yyyyMMdd")) { if ($objHistory.HResult -eq 0) { Write-Host ($wudate.ToString("yyyy/MM/dd hh:mm,")) $objHistory.Title ", Success" } elseif ($objHistory.HResult -eq -2145116140) { Write-Host ($wudate.ToString("yyyy/MM/dd hh:mm,")) $objHistory.Title ", Success (pending reboot)" $additionalmsg = "[Warning: this system is pending reboot.]" } else { Write-Host ($wudate.ToString("yyyy/MM/dd hh:mm,")) $objHistory.Title ", Failed (error:"$objHistory.HResult.ToString("X8")")" $wustatus = 1 } } } Write-Host "" Write-Host $additionalmsg exit $wustatus