Назад | Перейти на главную страницу

Запретить перезапуск серверов после автоматического обновления

В работе появился новый подход к тому, как мы заботимся о клиентах, стараясь быть более активными, а не просто реагировать на проблемы. Частично это делается для того, чтобы убедиться, что серверы обновлены. Мы развернули GP для обновления серверов (Конфигурация компьютера> Административные шаблоны> Компоненты Windows> Обновления Windows> Настроить автоматическое обновление).

Теперь нам нужен способ убедиться, что серверы перезапускаются только в определенное время, а не после завершения. Я нашел то, что считал ответом Вот но это было только для Server 2003, а не 2008 и 2012, которые мне нужны. Есть ли аналогичный GP, которым я мог бы воспользоваться? Планируется, что серверы будут автоматически сканировать, загружать и устанавливать обновления в течение недели, а все, что требует перезагрузки для установки, будет происходить в выходные.

Уловка здесь в том, чтобы Центр обновления Windows не выполнял установку через механизм автоматического обновления. Вы можете настроить его на автоматическую загрузку, но для автоматической установки нет способа остановить срабатывание таймера перезагрузки, если пользователь не вошел в систему, например, с помощью Нет автоматического перезапуска с авторизованными пользователями для запланированных автоматических установок обновлений политика. Поскольку это для серверов, я собираюсь предположить, что это не случай по умолчанию, и что никто не вошел в систему, это не означает, что ресурсы машины в данный момент не нужны.

Настройте запланированную задачу, которая запустит установку обновлений и сообщит, когда обновления будут завершены, или какое-либо другое действие, чтобы вы знали, что компьютер подлежит перезагрузке.

Я очень быстро доработал найденный скрипт Вот в соответствии с вашими потребностями:

#      Author: Gregory Strike
#     Website: www.GregoryStrike.com
#        Date: 02-19-2010
# Information: This script was adapated from the WUA_SearchDownloadInstall.vbs VBScript from Microsoft.  It uses the
#              Microsoft.Update.Session COM object to query a WSUS server, find applicable updates, and install them.

# < --- SNIP --- >

$UpdateSession = New-Object -Com Microsoft.Update.Session
$UpdateSearcher = $UpdateSession.CreateUpdateSearcher()

$SearchResult = $UpdateSearcher.Search("IsInstalled=0 and Type='Software'")

$UpdatesToInstall = New-Object -Com Microsoft.Update.UpdateColl

For ($X = 0; $X -lt $SearchResult.Updates.Count; $X++){
    $Update = $SearchResult.Updates.Item($X)
    If ($Update.IsDownloaded) {
        $Null = $UpdatesToInstall.Add($Update)        
    }
}


If ($Install.ToUpper() -eq "Y" -or $Install.ToUpper() -eq "YES"){
    Write-Host("")
    Write-Host("Installing Updates...") -Fore Green

    $Installer = $UpdateSession.CreateUpdateInstaller()
    $Installer.Updates = $UpdatesToInstall

    $InstallationResult = $Installer.Install()

    $ResultsBody = "List of Updates Installed with Results:"
    For ($X = 0; $X -lt $UpdatesToInstall.Count; $X++){
        $ResultsBody = $ResultsBody + "`r`n" + $UpdatesToInstall.Item($X).Title + ": " + $InstallationResult.GetUpdateResult($X).ResultCode
    }

    If ($InstallationResult.RebootRequire -eq $True){
        Send-MailMessage -From server@example.com -To admin@example.com -Subject "Server has installed updates that require a reboot" -Body 
    } else {
        Send-MailMessage -From server@example.com -To admin@example.com -Subject "Server has installed updates that do not require a reboot" -Body
    }
}

НОТА:
Вы можете использовать исходный связанный скрипт и изменить его для обнаружения и загрузки, и в этом случае, вероятно, будет лучше отключить политику «Настроить автоматическое обновление».

Дополнение:
Есть Модуль Windows Update PowerShell в Microsoft Script Center, который предоставляет функциональные возможности, необходимые для простого написания собственных сценариев Центра обновления Windows. На самом деле, есть много хороших ресурсов (на момент написания этой статьи) на первой странице google для поиска: powershell windows update