| James's profile"Funner" is not a word.BlogListsNetwork | Help |
|
August 15 Powershell and Windows Update (No forms)This is a re-working of a previous script I wrote to install updates on your computer. This version does not use WinForms.
######################################################################################################################################
# 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."} |
|
|