---- ====== Azure Arc Update Manager – Timeout During Patch Assessment ====== This page documents a workaround to fix Azure Arc Update Manager assessments that **hang or timeout**, typically due to issues with the WindowsPatchExtension or agent state corruption. ---- ===== 🧩 Symptoms ===== - Update assessments time out in the Azure Portal. - No recent update status from Arc-enabled servers. - `WindowsPatchExtension` or `WindowsOsUpdateExtension` appear stuck or in a failed state. ---- ===== 💡 Workaround Steps ===== These steps reset the Arc update extension state by stopping services, removing cached extension data, and restarting the relevant components. ---- ===== 🔧 Manual Steps (Single Computer) ===== Run the following in a PowerShell session on the target computer (or via remote session with `Enter-PSSession`): Stop-Service -name AutoAssessPatchesService Stop-Process -Name "gc_arc_service" -Force Stop-Process -Name "gc_extension_service" -Force Stop-Process -Name "AutoAssessPatchService" -Force -ErrorAction SilentlyContinue Remove-Item -Path "C:\Packages\Plugins\Microsoft.CPlat.Core.WindowsPatchExtension" -Recurse -Force azcmagent extension remove -n WindowsPatchExtension azcmagent extension remove -n WindowsOsUpdateExtension Start-Service -Name "GCArcService" Start-Service -name "ExtensionService" ---- ===== 🔁 Bulk Fix (Multiple Computers) ===== You can run this from a Domain Controller or management server using PowerShell remoting. This assumes WinRM is enabled on target systems. # List of computers $computers = @("server01", "server02", "server03") # Define the script block to execute on each remote computer $scriptBlock = { try { Write-Host "[$env:COMPUTERNAME] Stopping services..." -ForegroundColor Cyan Stop-Service -Name AutoAssessPatchesService -ErrorAction SilentlyContinue Stop-Process -Name "gc_arc_service" -Force -ErrorAction SilentlyContinue Stop-Process -Name "gc_extension_service" -Force -ErrorAction SilentlyContinue Stop-Process -Name "AutoAssessPatchService" -Force -ErrorAction SilentlyContinue Write-Host "[$env:COMPUTERNAME] Removing extension files..." -ForegroundColor Cyan Remove-Item -Path "C:\Packages\Plugins\Microsoft.CPlat.Core.WindowsPatchExtension" -Recurse -Force -ErrorAction SilentlyContinue Write-Host "[$env:COMPUTERNAME] Removing Arc extensions..." -ForegroundColor Cyan azcmagent extension remove -n WindowsPatchExtension | Out-Null azcmagent extension remove -n WindowsOsUpdateExtension | Out-Null Write-Host "[$env:COMPUTERNAME] Starting Arc services..." -ForegroundColor Cyan Start-Service -Name "GCArcService" -ErrorAction SilentlyContinue Start-Service -Name "ExtensionService" -ErrorAction SilentlyContinue Write-Host "[$env:COMPUTERNAME] Done." -ForegroundColor Green } catch { Write-Warning "[$env:COMPUTERNAME] Failed: $_" } } # Loop over each computer and invoke the script remotely foreach ($computer in $computers) { Write-Host "Processing $computer..." -ForegroundColor Yellow Invoke-Command -ComputerName $computer -ScriptBlock $scriptBlock -ErrorAction Continue } ---- ===== ✅ Optional ===== After running the workaround, you can reinstall the extension manually (or let Azure push it automatically): azcmagent extension add --name WindowsPatchExtension ---- ===== 📝 Notes ===== - Only do this if you're sure assessments are **hanging/stuck**, not just delayed. - Check Arc logs and `C:\Packages\Plugins\Microsoft.CPlat.Core.WindowsPatchExtension\Status` for clues before running this. - May help to restart `azcmagent` if issues persist.