Hej Michael
Det virkede, men så kom der en ny update til Windows, og så startede problemerne igen :-(
Jeg kørte dit script, men det begynder hurtigt at loope, med følgende tekst:
Denne browser understøttes ikke længere.
Opgrader til Microsoft Edge for at drage fordel af de nyeste funktioner, sikkerhedsopdateringer og teknisk support.
Med dette script nulstiller du hele Windows Update på en Windows 7, 8, 8.1 eller 10. Dette har altid virket for mig.
Havde f.eks en fejl på min Windows 10 Pro her igår, fejlfindings værktøjet i Windows "sagde" det var fixet, men så kom der bare en anden fejl... smart...
Så brugte jeg dette, og det har virket siden! LÆKKERT!
- Script start -
@echo off
goto check_Permissions
:check_Permissions
echo.
echo Der skal administrator rettigheder til.
echo.
net session >nul 2>&1
if %errorLevel% == 0 (
title Fix Windows update - Administrator
(echo Korrekt: Administrator rettigheder fundet.
echo.
pause
goto start)
) else (
title Fix Windows update - Ikke administrator
(echo Fejl: Administrator rettigheder ikke fundet. Start scriptet som administrator!
echo.
pause
goto luk)
)
pause >nul
:start
cls
title Fixer Windows update
echo.
echo VIGTIGT!
echo NET HELPMSG XXXX vises hvis en tjeneste allerede er stoppet osv.
echo Tag dig ikke af dette!
echo.
echo Starter script...
echo.
:bits
net stop bits
echo Checking the bits service status.
sc query bits | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto bits
)
:wuauserv
net stop wuauserv
echo Checking the wuauserv service status.
sc query wuauserv | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto wuauserv
)
:appidsvc
net stop appidsvc
echo Checking the appidsvc service status.
sc query appidsvc | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto appidsvc
)
:cryptsvc
net stop cryptsvc
echo Checking the cryptsvc service status.
sc query cryptsvc | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto cryptsvc
)
Ipconfig /flushdns
del /s /q /f "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
cd /d %windir%\system32
if exist "%SYSTEMROOT%\winsxs\pending.xml.bak" del /s /q /f "%SYSTEMROOT%\winsxs\pending.xml.bak"
if exist "%SYSTEMROOT%\winsxs\pending.xml" (
takeown /f "%SYSTEMROOT%\winsxs\pending.xml"
attrib -r -s -h /s /d "%SYSTEMROOT%\winsxs\pending.xml"
ren "%SYSTEMROOT%\winsxs\pending.xml" pending.xml.bak
)
if exist "%SYSTEMROOT%\SoftwareDistribution.bak" rmdir /s /q "%SYSTEMROOT%\SoftwareDistribution.bak"
if exist "%SYSTEMROOT%\SoftwareDistribution" (
attrib -r -s -h /s /d "%SYSTEMROOT%\SoftwareDistribution"
ren "%SYSTEMROOT%\SoftwareDistribution" SoftwareDistribution.bak
)
if exist "%SYSTEMROOT%\system32\Catroot2.bak" rmdir /s /q "%SYSTEMROOT%\system32\Catroot2.bak"
if exist "%SYSTEMROOT%\system32\Catroot2" (
attrib -r -s -h /s /d "%SYSTEMROOT%\system32\Catroot2"
ren "%SYSTEMROOT%\system32\Catroot2" Catroot2.bak
)
if exist "%SYSTEMROOT%\WindowsUpdate.log.bak" del /s /q /f "%SYSTEMROOT%\WindowsUpdate.log.bak"
if exist "%SYSTEMROOT%\WindowsUpdate.log" (
attrib -r -s -h /s /d "%SYSTEMROOT%\WindowsUpdate.log"
ren "%SYSTEMROOT%\WindowsUpdate.log" WindowsUpdate.log.bak
)
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)
echo.
echo Registrere Windows Update filer
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
netsh winsock reset proxy
echo Windows Update filer registreret
echo.
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc
echo Windows Update er fixet!
echo.
pause
:luk
- Script slut -
Kopier dette ind i notesblok, og gem det som f.eks. WindowsUpdateFix.cmd. Så er du sikker på Windows Update kommer til at virke igen ;-)
N.B Når det skal gemmes som, så under filtypeskal der vælges alle filer.
HUSK, KUN TIL WINDOWS 7 til og med 10 P.T!
Låst spørgsmål. Dette spørgsmål blev migreret fra Microsoft Support-community'et. Du kan stemme om, hvorvidt det er nyttigt, men du kan ikke tilføje kommentarer eller svar eller følge spørgsmålet.
Hej,
Sikke det kører for Windows Update nu for tiden...
Prøv at kør dette i CMD som admin for at genstarte den selv.
Tak for et hjælpsom værktøj!
Selv om det ikke lykkedes mig at få WU til at virke med det, så fortalte det mig* hvad var galt, nemlig at BITS slet ikke kørte!
* Dvs. da jeg ført bare kørte værktøjet med admin rettigheder, lukkede det ned uden forklaring. Derefter startede jeg det op fra cmd med administrator rettigheder, og så kunne jeg se, at scriptet stoppede pga. at BITS tjenesten ikke kørte.
Hej,
Hmm okay.. har lagt mærke til at det med tjenesterne driller lidt på nogle maskiner...
Hvis det er, kan du bare tage dette ud af koden:
:bits
net stop bits
echo Checking the bits service status.
sc query bits | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto bits
)
:wuauserv
net stop wuauserv
echo Checking the wuauserv service status.
sc query wuauserv | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto wuauserv
)
:appidsvc
net stop appidsvc
echo Checking the appidsvc service status.
sc query appidsvc | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto appidsvc
)
:cryptsvc
net stop cryptsvc
echo Checking the cryptsvc service status.
sc query cryptsvc | findstr /I /C:"STOPPED"
if not %errorlevel%==0 (
goto cryptsvc
)
også bare stoppe tjenesterne manuelt :-)
Får du nogen fejlkoder?
Tværtimod, så var det jo netop dét der gjorde at jeg fandt fejlen. Så dit script virkede udmærket :D
Jeg fixede bare BITS ved at kører tjenester som admin og så manuelt starte tjenesten op, og det har virket lige siden. Ingen behov for debug-hjælp, men tak for tilbudet :)
Jeg har også skrevet om det på Windows Insider DK gruppen på facebook, men du kan nok bare ikke genkende mig da jeg bruger vidst forskellige ID.