<# .SYNOPSIS Updates the running Windows machine. #> function Update-WindowsInstallation { <# Runs the Windows update loop. #> function Start-UpdateLoop { Write-Host "Preparing for Windows Update"; $null = Import-Module PSWindowsUpdate; while (((Get-WindowsUpdate -IgnoreReboot).Count -gt 0)) { Write-Host "There are updates available."; Write-Host "Installing updates"; try { $null = Install-WindowsUpdate -AcceptAll -IgnoreReboot -ErrorAction "SilentlyContinue"; } catch { } if ((Get-WURebootStatus -Silent)) { Write-Information "A Reboot is Required!"; Write-Information "Windows will reboot now and the installation will be continued automatically."; return; } } else { Write-Information "Upgrading Windows finished successfully!"; return; } } Start-UpdateLoop; }