Posso fazer eco do que @Proxy disse:
odd fix ... Very, very strange. ... How very bizarre.
Meu laptop Samsung possui o Windows 8.1 Update. Ele teve uma infecção que foi limpa. A data atual é 16/05/2017, mas a última atualização do Windows ocorreu há dois anos em 2015.
As atualizações do Windows não estavam funcionando após a limpeza do malware. Suspenderia, não haveria progresso em c:\windows\WindowsUpdate.log
e, ainda assim, ocuparia 100% de um núcleo.
Uma consequência de estar 2 anos desatualizada, que pode ser relevante, foi que o GWX (Get Windows 10) ainda estava sendo executado neste laptop, mesmo que essa oferta tenha expirado há mais de um ano.
A outra coisa notável com este laptop foi que eu substituí a placa-mãe duas vezes. Na primeira vez, estava batendo várias vezes ao dia. A segunda motherboard funcionou bem. Então essas falhas podem ter tido um efeito aqui.
Depois de tentar quase tudo, foi isso que funcionou: Windows cleanmgr.exe
"Disk Cleanup" ou "Limpar espaço em disco excluindo arquivos desnecessários".
Eu selecionei:
- Arquivos temporários da Internet
- Depurar arquivos de despejo (parece que eles ainda estão lá, no entanto)
- Arquivos de despejo de memória de erro do sistema (parece que ainda estão lá)
- Arquivos temporários
Depois disso, e uma reinicialização, o Windows Update funcionou. Quão bizarro.
Veja algumas das soluções importantes que tentei que não funcionaram:
:: consider carefully /ResetBase -- it prevents you from un-installing windows updates
Dism /Online /Cleanup-Image /StartComponentCleanup /ResetBase
Dism /Online /Cleanup-Image /RestoreHealth
sfc /scannow
Eu tive que executar isso mais de uma vez.
Cada um desses passos corrigiu a corrupção. Até que eles passaram sem corrupção encontrada.
Ainda assim, o Windows Update não funcionaria. Ainda pendurado.
Indo mais fundo, tentei essa correção, "Opção 2" do link do sevenforums:
Reset_Reregister_Windows_Update_Components.bat
Este é o conteúdo desse arquivo em lote a partir de hoje:
@echo off
:: Created by: Shawn Brink
:: http://www.sevenforums.com
:: Tutorial: http://www.sevenforums.com/tutorials/91738-windows-update-reset.html
set b=0
:bits
set /a b=%b%+1
if %b% equ 3 (
goto end1
)
net stop bits
echo Checking the bits service status.
sc query bits | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto bits
)
goto loop2
:end1
cls
echo.
echo Failed to reset Windows Update due to bits service failing to stop.
echo.
pause
goto Start
:loop2
set w=0
:wuauserv
set /a w=%w%+1
if %w% equ 3 (
goto end2
)
net stop wuauserv
echo Checking the wuauserv service status.
sc query wuauserv | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto wuauserv
)
goto loop3
:end2
cls
echo.
echo Failed to reset Windows Update due to wuauserv service failing to stop.
echo.
pause
goto Start
:loop3
set app=0
:appidsvc
set /a app=%app%+1
if %app% equ 3 (
goto end3
)
net stop appidsvc
echo Checking the appidsvc service status.
sc query appidsvc | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto appidsvc
)
goto loop4
:end3
cls
echo.
echo Failed to reset Windows Update due to appidsvc service failing to stop.
echo.
pause
goto Start
:loop4
set c=0
:cryptsvc
set /a c=%c%+1
if %c% equ 3 (
goto end4
)
net stop cryptsvc
echo Checking the cryptsvc service status.
sc query cryptsvc | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto cryptsvc
)
goto Reset
:end4
cls
echo.
echo Failed to reset Windows Update due to cryptsvc service failing to stop.
echo.
pause
goto Start
:Reset
Ipconfig /flushdns
Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
cd /d %windir%\system32
Ren %systemroot%\system32\catroot2 catroot2.bak
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
regsvr32 /s wudriver.dll
netsh winsock reset
:Start
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc
bitsadmin.exe /reset /allusers
Eu tentei uma versão expandida que adicionou a parada / início de msiserver
e uma renomeação de %systemroot%\SoftwareDistribution
e que interrompeu wuauserv
por último porque o Windows pode reinicializá-lo automaticamente.
Este é o código:
:rem v2 with ren whole SoftwareDistribution
:rem and stop / start msiserver
@echo off
:: Created by: Shawn Brink
:: http://www.sevenforums.com
:: Tutorial: http://www.sevenforums.com/tutorials/91738-windows-update-reset.html
:rem ---------- bits ----------
:loop1
set b=0
:bits
set /a b=%b%+1
if %b% equ 3 (
goto end1
)
net stop bits
echo Checking the bits service status.
sc query bits | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto bits
)
goto loop2
:end1
cls
echo.
echo Failed to reset Windows Update due to bits service failing to stop.
echo.
pause
goto Start
:rem ---------- appidsvc ----------
:loop2
set app=0
:appidsvc
set /a app=%app%+1
if %app% equ 3 (
goto end2
)
net stop appidsvc
echo Checking the appidsvc service status.
sc query appidsvc | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto appidsvc
)
goto loop3
:end2
cls
echo.
echo Failed to reset Windows Update due to appidsvc service failing to stop.
echo.
pause
goto Start
:rem ---------- cryptsvc ----------
:loop3
set c=0
:cryptsvc
set /a c=%c%+1
if %c% equ 3 (
goto end3
)
net stop cryptsvc
echo Checking the cryptsvc service status.
sc query cryptsvc | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto cryptsvc
)
goto loop4
:end3
cls
echo.
echo Failed to reset Windows Update due to cryptsvc service failing to stop.
echo.
pause
goto Start
:rem ---------- msiserver ----------
:loop4
set w=0
:msiserver
set /a w=%w%+1
if %w% equ 3 (
goto end4
)
net stop msiserver
echo Checking the msiserver service status.
sc query msiserver | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto msiserver
)
goto loop5
:end4
cls
echo.
echo Failed to reset Windows Update due to msiserver service failing to stop.
echo.
pause
goto Start
:rem ---------- wuauserv ----------
:loop5
set w=0
:wuauserv
set /a w=%w%+1
if %w% equ 3 (
goto end5
)
net stop wuauserv
echo Checking the wuauserv service status.
sc query wuauserv | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto wuauserv
)
goto Reset
:end5
cls
echo.
echo Failed to reset Windows Update due to wuauserv service failing to stop.
echo.
pause
goto Start
:rem ---------- Reset ----------
:Reset
Ipconfig /flushdns
Del "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
sc.exe sdset bits D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
sc.exe sdset wuauserv D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
cd /d %windir%\system32
Ren %systemroot%\system32\catroot2 catroot2.bak
cd %systemroot%\
ren SoftwareDistribution SoftwareDistribution_mm.bak
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
regsvr32 /s wudriver.dll
netsh winsock reset
:Start
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc
net start msiserver
bitsadmin.exe /reset /allusers
E, depois de tudo, o que fez o Windows Update funcionar novamente foi cleanmgr