Hi @richel.valdez while not frequent, this can occur. Automox also relies on the Windows Update Agent running locally to be fully working and pulling down good metadata from Microsoft as to what needs to be patched in regards to those Cumulative Updates.
Here are a few remediation scripts I’ve used to cleanup Windows Update when things don’t seem right:
# Driver Updates - this is unique to everyone. I’ve used this for Dell
# Running the built-in Windows Update Troubleshooter - cannot say the output is that clean, but occasionally it fixes corruption :-)
$tsp = Get-TroubleshootingPack C:\Windows\diagnostics\system\WindowsUpdate
Invoke-TroubleshootingPack -Pack $tsp -AnswerFile .\WUDAnswers.xml -Unattended -Result $env:HomeDrive\WUDResult
[xml]$xml = Get-Content $env:HomeDrive\WUDResult\ResultReport.xml
$xml.ResultReport.Package.Problem.DetectionInformation.DetailedInformation.Detail.Contents.Objects.Object | % { write-output $_.'#text';write-output ". " }
$today = Get-Date
$start = $today.AddDays(-33)
$events = Get-WinEvent -FilterHashtable @{
LogName='Setup'
StartTime=$start
EndTime=$today
}
$events | % {
Write-Output "$($_.TimeCreated) | $($_.ID) | $($_.Message)"
}
# Using DISM Healthchecks and the classic SFC /ScanNow to combat Windows Operating System system file corruption
### Dism OS
Write-Output "Running Dism.exe /Online /Cleanup-Image /CheckHealth"
start-process Dism.exe -ArgumentList '/online /Cleanup-Image /checkhealth' -Wait
Write-Output "Running Dism.exe /Online /Cleanup-Image /ScanHealth"
start-process Dism.exe -ArgumentList '/online /Cleanup-Image /scanhealth' -Wait
Write-Output "Running Dism.exe /Online /Cleanup-Image /RestoreHealth"
start-process Dism.exe -ArgumentList '/online /Cleanup-Image /Restorehealth /NoRestart' -Wait
### SFC
start-process sfc -ArgumentList '/scannow' -Wait
$events = Select-String -path C:\Windows\Logs\CBS\CBS.log -Pattern '\[SR\] Repairing','\[SR\] Verify and Repair'
foreach ($event in $events){
Write-Output $event
}
### Dism Components
start-process Dism.exe -ArgumentList '/Online /Cleanup-Image /AnalyzeComponentStore' -Wait
start-process Dism.exe -ArgumentList '/Online /Cleanup-Image /StartComponentCleanup /NoRestart' -Wait
$events = Get-WinEvent -FilterHashtable @{
LogName='Setup'
ID=1013,1014
} | Select Message
foreach ($event in $events){
Write-Output $event
}
# Resetting Windows Update Agent - built from https://learn.microsoft.com/en-us/troubleshoot/windows-client/installing-updates-features-roles/additional-resources-for-windows-update
$arch = Get-WMIObject -Class Win32_Processor -ComputerName LocalHost | Select-Object AddressWidth
Stop-Service -Name BITS
Stop-Service -Name wuauserv
Stop-Service -Name appidsvc
Stop-Service -Name cryptsvc
Remove-Item "$env:allusersprofile\Microsoft\Network\Downloader\qmgr*.dat" -ErrorAction SilentlyContinue
Remove-Item $env:systemroot\SoftwareDistribution -recurse -force -ErrorAction SilentlyContinue
Remove-Item $env:systemroot\SoftwareDistribution.bak -recurse -force -ErrorAction SilentlyContinue
Remove-Item $env:systemroot\System32\Catroot2.bak -recurse -force -ErrorAction SilentlyContinue
Rename-Item $env:systemroot\System32\Catroot2 catroot2.bak -ErrorAction SilentlyContinue
Remove-Item $env:systemroot\WindowsUpdate.log -ErrorAction SilentlyContinue
[void]("sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)")
[void]("sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)")
Set-Location $env:systemroot\system32
regsvr32.exe /s atl.dll
regsvr32.exe /s urlmon.dll
regsvr32.exe /s mshtml.dll
regsvr32.exe /s shdocvw.dll
regsvr32.exe /s browseui.dll
regsvr32.exe /s jscript.dll
regsvr32.exe /s vbscript.dll
regsvr32.exe /s scrrun.dll
regsvr32.exe /s msxml.dll
regsvr32.exe /s msxml3.dll
regsvr32.exe /s msxml6.dll
regsvr32.exe /s actxprxy.dll
regsvr32.exe /s softpub.dll
regsvr32.exe /s wintrust.dll
regsvr32.exe /s dssenh.dll
regsvr32.exe /s rsaenh.dll
regsvr32.exe /s gpkcsp.dll
regsvr32.exe /s sccbase.dll
regsvr32.exe /s slbcsp.dll
regsvr32.exe /s cryptdlg.dll
regsvr32.exe /s oleaut32.dll
regsvr32.exe /s ole32.dll
regsvr32.exe /s shell32.dll
regsvr32.exe /s initpki.dll
regsvr32.exe /s wuapi.dll
regsvr32.exe /s wuaueng.dll
regsvr32.exe /s wuaueng1.dll
regsvr32.exe /s wucltui.dll
regsvr32.exe /s wups.dll
regsvr32.exe /s wups2.dll
regsvr32.exe /s wuweb.dll
regsvr32.exe /s qmgr.dll
regsvr32.exe /s qmgrprxy.dll
regsvr32.exe /s wucltux.dll
regsvr32.exe /s muweb.dll
regsvr32.exe /s wuwebv.dll
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
[void](netsh winsock reset)
[void](netsh winhttp reset proxy)
Get-BitsTransfer | Remove-BitsTransfer
if($arch -eq 64){
#wusa Windows8-RT-KB2937636-x64 /quiet
}
else{
#wusa Windows8-RT-KB2937636-x86 /quiet
}
Start-Service -Name BITS
Start-Service -Name wuauserv
Start-Service -Name appidsvc
Start-Service -Name cryptsvc
wuauclt /resetauthorization /detectnow
Write-Output "Windows Update settings restored to default."