Files
Sandbox/Windows-InstallAllMUUpdates.ps1
Zack Meier 03dba08135 sync
2026-04-15 15:42:41 -05:00

35 lines
1.5 KiB
PowerShell

Get-VM -Name $FQDN | Invoke-VMScript -GuestCredential $GuestCredential -ScriptType PowerShell -ScriptText {
<#Write-Progress -Activity "Windows Update" -Status "Configure Auto Update Settings"
Write-Verbose "Configure Windows Updates to never check for updates"
$WUSettings = (New-Object -ComObject "Microsoft.Update.AutoUpdate").Settings
$WUSettings.NotificationLevel = 1
$WUSettings.Save()
#>
Write-Verbose "Search, download and install Windows Updates"
#Define update criteria.
$Criteria = "IsInstalled=0 and Type='Software'"
Write-Verbose "Search for relevant updates"
Write-Progress -Activity "Windows Update" -Status "Searching for available and relevant updates"
$Searcher = New-Object -ComObject Microsoft.Update.Searcher
$SearchResult = $Searcher.Search($Criteria).Updates
If ($SearchResult.Count -eq 0) {
Write-Verbose "No relevant updates found"
}
Else {
Write-Verbose "Download updates"
Write-Progress -Activity "Windows Update" -Status "Downloading updates"
$Session = New-Object -ComObject Microsoft.Update.Session
$Downloader = $Session.CreateUpdateDownloader()
$Downloader.Updates = $SearchResult
$Downloader.Download()
Write-Verbose "Install updates"
Write-Progress -Activity "Windows Update" -Status "Installing updates"
$Installer = New-Object -ComObject Microsoft.Update.Installer
$Installer.Updates = $SearchResult
$Result = $Installer.Install()
}
}