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.
These steps reset the Arc update extension state by stopping services, removing cached extension data, and restarting the relevant components.
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"
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 }
After running the workaround, you can reinstall the extension manually (or let Azure push it automatically):
azcmagent extension add --name WindowsPatchExtension