----
====== 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.