Есть ли какой-либо пакетный сценарий или команда командной строки, которые могут автоматически запускать Центр обновления Windows на нескольких удаленных серверах (возможно, через psexec)? Не предпочитаю использовать сценарий VB, но если он доступен, это тоже нормально. Спасибо.
Зависит от того, как ты хочешь заниматься. Если вам нужен более пакетный метод psexec, вам нужно изучить условно-бесплатную утилиту CLI, которую я видел раньше. Если честно, сам никогда не тестировал, wuinstall. Я вижу несколько статей в ИТ-журналах типа Windows, поэтому сомневаюсь, что вы будете первым. Есть бесплатная и профессиональная версия, но я не могу сказать, каковы лицензионные ограничения.
Если вы справитесь со сценарием, я знаю, что этот системный администратор-люцифист Winboxen написал сценарий PowerShell для выполнения что ты ищешь.
######################################################################################################################################
# Windows Update through Powershell (No Forms) v1.0 ######################################################################################################################################
clear-host
Write-host "Starting Update Process..." -foregroundcolor blue
Write-host ""
$UpdateSession = New-Object -com Microsoft.Update.Session
$UpdateSearcher = $UpdateSession.CreateupdateSearcher()
$SearchResult = $UpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0")
$UpdateLowNumber = 0
$UpdateHighNumber = 1
$NumberofUpdates = $searchResult.Updates.Count
while ($UpdateHighNumber -le $NumberofUpdates) {
$UpdatesToDownload = New-Object -com Microsoft.Update.UpdateColl
$Update = $searchResult.Updates.Item($UpdateLowNumber)
if ($Update.EulaAccepted -eq 0) {$Update.AcceptEula()}
[void]$UpdatesToDownload.Add($Update)
$Downloader = $UpdateSession.CreateUpdateDownloader()
$Downloader.Updates = $UpdatesToDownload
[void]$Downloader.Download()
$UpdatesToInstall = New-Object -com Microsoft.Update.UpdateColl
[void]$UpdatesToInstall.Add($Update)
$Title = $update.Title
$KBArticleIDs = $update.KBArticleIDs
$SecurityBulletinIDs = $update.SecurityBulletinIDs
$MsrcSeverity = $update.MsrcSeverity
$LastDeploymentChangeTime = $update.LastDeploymentChangeTime
$MoreInfoUrls = $update.MoreInfoUrls
Write-host "Installing Update $UpdateHighNumber of $NumberofUpdates"
Write-host "Title: $Title"
if ($KBArticleIDs -ne "") {Write-host "KBID: $KBArticleIDs"}
if ($SecurityBulletinIDs -ne "") {write-host "Security Bulletin: $SecurityBulletinIDs"}
if ($MsrcSeverity -eq "Critical") {Write-host "Rating: $MsrcSeverity" -foregroundcolor red} else {Write-host "Rating: $MsrcSeverity"}
if ($LastDeploymentChangeTime -ne "") {Write-host "Dated: $LastDeploymentChangeTime"}
if ($MoreInfoUrls -ne "") {Write-host "$MoreInfoUrls"}
$Installer = $UpdateSession.CreateUpdateInstaller()
$Installer.Updates = $UpdatesToInstall
$InstallationResult = $Installer.Install()
Write-host "--------------------------------------------"
if ($InstallationResult.ResultCode -eq "2") {Write-host " Installation Succeeded" -foregroundcolor green} else {Write-host " INSTALLATION FAILED, check event log for details" -foregroundcolor red}
if ($InstallationResult.RebootRequired -eq "False") {Write-host " Reboot not required" -foregroundcolor green} else {Write-host " REBOOT REQUIRED" -foregroundcolor red}
Write-host "--------------------------------------------"
Write-host ""
Write-host ""
$Title = ""
$KBArticleIDs = ""
$SecurityBulletinIDs = ""
$MsrcSeverity = ""
$LastDeploymentChangeTime = ""
$MoreInfoUrls = ""
$UpdateLowNumber = $UpdateLowNumber + 1
$UpdateHighNumber = $UpdateHighNumber + 1
if ($ProgressValue -lt $NumberofUpdates) {$ProgressValue = $ProgressValue + 1}
}
$ComputerStatus = New-Object -com Microsoft.Update.SystemInfo
if ($ComputerStatus.RebootRequired -eq 1) {cmd /c $env:WinDir\System32\Shutdown.exe -r -f -t 10 -c "Patching Complete."}
Если вы обратите внимание на этот скрипт, вы увидите, что открываете COM-объекты и тому подобное. Итак, вам нужно либо запечь свой собственный двоичный код, либо чужой код, не относящийся к MSFT (а-ля Wuinstall), или выполнить такое же количество сценариев на VBScript. Вы говорите Win23k Server, поэтому я не уверен, установлен ли у вас PS. Если нет, то есть Документация TechNet чтобы вылечить свои недуги.
В итоге, Google - ваш друг. Имейте это в виду, прежде чем размещать здесь. :-)