Возможно, вы можете запланировать сценарий PowerShell с помощью планировщика задач, чтобы каждую среду проверять историю клиентов Центра обновления Windows.
Я поставил быстрый скрипт, который проверяет, все ли обновления, примененные за последний день, были успешными.
$Session = New-Object -ComObject "Microsoft.Update.Session"
$Searcher = $Session.CreateUpdateSearcher()
$yesterday = (Get-Date).Addmonths(-5)
$historyCount = $Searcher.GetTotalHistoryCount()
$Searcher = $Searcher.QueryHistory(0, $historyCount) | Where-object {$_.Date -gt $yesterday} |Select-Object Title, Date,
@{name="Result"; expression={switch($_.ResultCode){
0{"NotStarted"}; 1 {"InProgress"}; 2 {"Succeeded"}; 3 {"SucceededWithErrors"}; 4 {"Failed"}; 5{"Aborted"}
}}}
if ($Searcher -eq $null){
Write-Host "Updates not found."
break
}
#Checks for whether all updates installed correctly.
if ($Searcher.Result -eq "Succeeded"){
Write-Host "Everything installed."
#Stops windows service
Stop-Service -Name wuauserv -Force
Get-service -Name wuauserv
}
elseif ($Searcher.Result -eq "InProgress"){
Write-Host "Updates are still been applied."
}
else {
Write-Host "Updates are in error status"
$Searcher
}
НОТА:
Авторы благодарят Курта Хадсона и Питера Глилена на форуме Microsoft TechNet за публикацию « Как составить список всех обновлений Windows и программного обеспечения, примененных к компьютеру».