Windows Gpupdate Site
:: Perform /force echo. echo [ACTION] Running gpupdate /force /wait:120 ... gpupdate /force /wait:120 >> "%LOGFILE%" 2>&1
$result = Invoke-Command -ComputerName $ComputerName -ScriptBlock $scriptBlock -ArgumentList $Force $exitCode = $result.ExitCode "[$(Get-Date)] Exit code: $exitCode" | Out-File -FilePath $logFile -Append Interpret exit codes switch ($exitCode) 0 Write-Host "Success: Policy updated." -ForegroundColor Green 1 Write-Host "Warning: Policy updated but reboot required." -ForegroundColor Yellow 2 Write-Host "Warning: Policy updated but logoff required." -ForegroundColor Yellow 3 Write-Host "Error: Access denied (run as admin)." -ForegroundColor Red default Write-Host "Unknown error code: $exitCode" -ForegroundColor Red Auto-reboot if flagged if ($exitCode -eq 1 -and $RebootIfNeeded -and $ComputerName -eq $env:COMPUTERNAME) Write-Host "Rebooting in 30 seconds..." -ForegroundColor Magenta shutdown /r /t 30 /c "GPUpdate required reboot" windows gpupdate
if ($ComputerName -eq $env:COMPUTERNAME) Write-Host "Running gpupdate locally..." -ForegroundColor Cyan $params = if ($Force) "/force" else "" $result = Start-Process -Wait -NoNewWindow -FilePath "gpupdate.exe" -ArgumentList $params -PassThru $exitCode = $result.ExitCode else Write-Host "Running gpupdate on $ComputerName..." -ForegroundColor Cyan $scriptBlock = param($forceFlag) if ($forceFlag) gpupdate /force else gpupdate :: Perform /force echo