cubehd
Goto Top

Windows-Update Batch-Datei enthält Fehler?

Hallo,

Ich habe eine Batch Datei geschrieben (zum teil übernommen von einer Vorlage aus dem Internet) die Windows-Update-Fehler beheben soll.

Die Batch Datei läuft zwar durch aber an manchen punkten kommt "Zugriff verweigert".
Ich habe die Batch-Datei natürlich mit Admin Rechten gestartet.

In dem Abschnitt, indem Systemdateien gelöscht und/oder umbenannt werden ploppt "Zugriff verweigert" auf. Es scheint aber, dass der Prozess weitergeht und funktioniert.
Es ist nicht ersichtlich an welchem Punkt der Zugriff verweigert wird.
Habt ihr eine Idee?

In dem Abschnitt "Set the startup type as automatic" erscheint auch "Zugriff verweigert".
Zudem können die angegebenen Registrierungsschlüssel bzw. Wert wurde nicht gefunden.


Hier die Batch Datei:

echo Achtung, das Script muss als Administrator ausgeführt werden.
echo.
set /p EINGABE=Wollen Sie fortfahren oder abbrechen? [j oder n]
echo.
if not %EINGABE% == j goto ende
:start

ECHO.
ECHO.

ECHO *
ECHO Windows-Update Funktion wird repariert...
ECHO
*

net stop wuauserv
net stop appidsvc
net stop cryptSvc
net stop bits
net stop msiserver

pause

del /s /q /f "%ALLUSERSPROFILE%\Application Data\Microsoft\Network\Downloader\qmgr*.dat"
del /s /q /f "%ALLUSERSPROFILE%\Microsoft\Network\Downloader\qmgr*.dat"
if exist "%SYSTEMROOT%\winsxs\pending.xml.bak" (
del /s /q /f "%SYSTEMROOT%\winsxs\pending.xml.bak"
)
if exist "%SYSTEMROOT%\SoftwareDistribution.bak" (
rmdir /s /q "%SYSTEMROOT%\SoftwareDistribution.bak"
)
if exist "%SYSTEMROOT%\system32\Catroot2.bak" (
rmdir /s /q "%SYSTEMROOT%\system32\Catroot2.bak"
)
if exist "%SYSTEMROOT%\WindowsUpdate.log.bak" (
del /s /q /f "%SYSTEMROOT%\WindowsUpdate.log.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" (
attrib -r -s -h /s /d "%SYSTEMROOT%\SoftwareDistribution"
ren "%SYSTEMROOT%\SoftwareDistribution" SoftwareDistribution.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" (
attrib -r -s -h /s /d "%SYSTEMROOT%\WindowsUpdate.log"
ren "%SYSTEMROOT%\WindowsUpdate.log" WindowsUpdate.log.bak
)

pause

echo :: ----- Reset the BITS service and the Windows Update service to the default security descriptor -----

sc.exe sdset bits Dface-sadA;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)
sc.exe sdset wuauserv Dface-sadA;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)

pause

echo :: ----- Reregister the BITS files and the Windows Update files -----

cd /d %WINDIR%\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

pause

echo :: ----- Resetting Winsock -----
netsh winsock reset
pause

echo :: ----- Resetting WinHTTP Proxy -----
netsh winhttp reset proxy
pause

echo :: ----- Set the startup type as automatic -----
sc config wuauserv start= auto
sc config bits start= auto
sc config DcomLaunch start= auto

reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v LastWaitTimeout /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionStartTime /f
reg delete "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f

pause

echo :: ----- Starting the Windows Update services -----
net start bits
net start wuauserv
net start appidsvc
net start cryptsvc
net start DcomLaunch
net start msiserver

pause

start ms-settings:windowsupdate

echo.
echo.
:ende
echo Fertig.
pause

Content-ID: 665252

Url: https://administrator.de/contentid/665252

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

Xerebus
Xerebus 29.03.2021 um 18:32:14 Uhr
Goto Top
Mach einfach mehrere echo mit Beschreibung was gerade passiert rein dann siehste wo deine Probleme sind.
GarfieldBonn
GarfieldBonn 29.03.2021 aktualisiert um 19:27:04 Uhr
Goto Top
Hallo,

Die Dienste in umgekehrter Reihenfolge starten wie sie gestoppt wurden (Abhängigkeiten)
Manchmal starten Dienst wie der Cryptoservice auch von selbst neu. Ein zusätzlicher Check kann nicht schaden
DCOM-Service würde ich nicht anfassen.
Die Reg-Keys gibt es zu mindestens auf meinem System 20H2 auch nicht

Ansonsten zum Auffinden der Fehlerstellen ein paar Pausen mehr einbauen

gruss