Ça dépend de ce que vous voulez faire. Si vous voulez une méthode psexec, plus proche du style batch, vous devez vous pencher sur un utilitaire CLI shareware que j'ai déjà vu. Pour être honnête, je ne l'ai jamais testé moi-même, wuinstall . Je vois quelques articles de magazines informatiques de type Windows, donc je doute que vous soyez le premier. Il existe une version freeware et pro, mais je ne peux pas dire quelles sont les restrictions de licence.
Si vous pouvez passer outre les scripts, je sais que ce Lucifist Winboxen sysadmin a écrit un script PowerShell pour faire ce que vous recherchez.
######################################################################################################################################
# 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."}
Si vous prêtez attention à ce script, vous verrez que vous ouvrez des objets COM et autres. Donc, vous devez soit préparer votre propre binaire ou le code non-MSFT de quelqu'un d'autre (à la Wuinstall), soit faire la même quantité de script en VBScript. Vous dites Win23k Server, donc je ne suis pas sûr que vous ayez installé PS ou non. Si ce n'est pas le cas, il existe Documentation TechNet pour guérir vos maux.
En résumé, Google est votre ami. Gardez cela à l'esprit avant de poster ici :-)