Konfiguration des Starttyps der Windows 10-Dienste sichern
Nach einer Neuinstallation von Windows 10 ist das Deaktivieren nicht verwendeter Windows-Dienste eine der zeitaufwändigen Aufgaben, die Sie ausführen. Nach der Konfiguration können Sie den Dienststartstatus mithilfe eines Skripts sichern, damit er für nachfolgende Installationen verwendet werden kann oder wenn Sie die Aufgabe auf mehreren Computern automatisieren müssen.
Sicherungen des Dienststatus können auch hilfreich sein, wenn Sie Probleme mit Windows-Diensten beheben und die vorgenommenen Änderungen schnell rückgängig machen möchten.
VERBINDUNG: Löschen Sie einen Dienst in Windows über Befehlszeile, Regedit oder AutorunsKonfiguration der Sicherungsdienste (Starttyp) in Windows
Hier ist ein Windows Services-Startkonfigurations-Backup-VBScript, das ich geschrieben habe. Das Skript sichert den .reg
aller Dienste, indem es die .reg
in zwei Dateiformaten .reg
- .reg
(Registrierungseinträge) und .bat
(Windows Batch-Datei), damit Sie die .reg
später wiederherstellen können.
'Beschreibung: Dieses Skript sichert die Windows Services-Startkonfiguration in einer REG-Datei. 'Für Windows 10, Windows Server 2016' © 2016-2019 Ramesh Srinivasan 'Website: //www.winhelponline.com/blog/' Überarbeitet: 07. Juli 2019 Option Explizit Wenn WScript.Arguments.length = 0 Dann Dim objShell: Set objShell = CreateObject ("Shell.Application") objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 Else Dim WshShell, objFSO, strNow, intServiceType, intStartupType, strDisplayName, iSvcCnt Dim sREGFile, sBATFile, r, b, strComputer, objWMIService, colListOfServices, objService Set WshShell = CreateObject ("Wscript.Shell" ) strNow = Jahr (Datum) & Rechts ("0" & Monat (Datum), 2) & Rechts ("0" & Tag (Datum), 2) Dim objFile: Setze objFile = objFSO.GetFile (WScript.ScriptFullName) sREGFile = objFSO.GetParentFolderName (objFile) & "\ svc_curr_state_" & strNow & ".reg" sBATFile = objFSO.GetParentFolderName (objFile) & "\ svc_curr_state_" & strNow & ".bat" True) r.WriteLine "Windows Registry Editor Version 5.00" r.WriteBlankLines 1 r.WriteLine "; Sicherung der Dienststartkonfiguration" & Now r.WriteBlankLines 1 Setzen Sie b = objFSO.CreateTextFile (sBATFile, True) b.WriteLine "@echo Restore Dienststartstatus gespeichert unter "& Now b.WriteBlankLines 1 strComputer =". " iSvcCnt = 0 Dim sStartState, sSvcName, sSkippedSvc Set objWMIService = GetObject ("winmgmts:" _ & "{impersonationLevel = impersonate}! \\" & strComputer & "\ root \ cimv2") Set colListOfServices = objM * from Win32_Service ") Für jeden objService in colListOfServices iSvcCnt = iSvcCnt + 1 r.WriteLine" [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ "& trim (objService.Name) &"] "sStartStateService = objService.Name Fall auswählen sStartState Fall "boot" r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000000" b.WriteLine "sc.exe config" & sSvcName & "start = boot" Fall "system" r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000001" b.WriteLine "sc.exe config" & sSvcName & "start = system" Fall "auto" 'Check wenn es automatisch ist (verzögerter Start) r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000002" Wenn objService.DelayedAutoStart = True Dann r.WriteLine chr (34) & "DelayedAutostart" & Chr (34) & "= dword: 00000001" b.WriteLine "sc.exe config" & sSvcName & "start = verzögert-automatisch" Sonst r.WriteLine chr (34) & "DelayedAutostart" & Chr (34) & "= -" b.WriteLine "sc.exe config" & sSvcName & "start = auto" End If Case "Handbuch" r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000003" b.WriteLine "sc.exe config" & sSvcName & "start = demand "Fall" deaktiviert "r.WriteLine chr (34) &" Start "& Chr (34) &" = dword: 00000004 "b.WriteLine" sc.exe config "& sSvcName &" start = deaktiviert "Fall" unbekannt "sSkippedSvc = sSkippedSvc & ", " & sSvcName 'Fall sonst Ende Wählen Sie r.WriteBlankLines 1 Weiter Wenn trim (sSkippedSvc) "" Dann WScript.Echo iSvcCnt & "Dienste gefunden. Die Dienste "& sSkippedSvc &" konnten nicht gesichert werden. "Andernfalls wurden WScript.Echo iSvcCnt &" Dienste gefunden und ihre Startkonfiguration gesichert. "End If r.Close b.WriteLine" @pause "b.Close WshShell.Run" notepad.exe "& sREGFile WshShell.Run" notepad.exe "& sBATFile Set objFSO = Nothing Set WshShell = Nothing End If
Wie benutzt man das VBScript?
- Kopieren Sie die obigen Codezeilen in den Editor
- Speichern Sie die Datei mit der Erweiterung .vbs, z. B.
services_startup_config_backup.vbs
. - Doppelklicken Sie, um das Skript auszuführen.
Das Skript startet sich selbst als Administrator neu (erhöht) und fragt die Liste der Windows-Dienste und deren Konfiguration des Starttyps ab. Die Ergebnisse werden zur späteren Wiederherstellung in die Dateien .reg
und .bat
geschrieben. Die beiden Dateien werden im selben Ordner wie das Skript erstellt.
Die Ausgabedateien haben das Präfix svc_curr_state _ und anschließend das aktuelle Datum im Format JJJJMMTT - z. B. svc_curr_state_20190706.reg
& svc_curr_state_20190706.bat

Hinweis: Das Skript berücksichtigt auch, ob ein Dienst für einen verzögerten Start konfiguriert ist oder nicht. Für Dienste mit dem DelayedAutoStart
Automatischer Start" (verzögerter Start) wird ein zusätzlicher Registrierungswert mit dem Namen " DelayedAutoStart
verwendet. Wenn DelayedAutoStart auf 1 und Startwert auf 2 (Automatisch) gesetzt ist, wird der Dienst als Automatisch (verzögerter Start) konfiguriert. Und die Batch-Datei hat das delayed-auto
als Startmodus für diese Dienste.
Wiederherstellen der Konfiguration des Dienststarttyps
Wählen Sie eines der beiden Formate aus, um die Konfiguration des Starttyps der Dienste aus der Sicherung wiederherzustellen.
.reg-Datei
Wenn Sie die .reg-Datei verwenden, um die Einstellungen für den Dienststart wiederherzustellen, müssen Sie Windows neu starten, nachdem Sie die .reg-Datei angewendet haben, damit die Dienstkonfiguration aktualisiert wird. Dies ist jedoch die bevorzugte Methode.
.bat-Datei
Die Batch-Datei enthält SC-Befehle, mit denen die Startkonfiguration der Dienste in Echtzeit geändert wird. Sie benötigen keinen Neustart, wenn Sie die Methode verwenden. Stellen Sie sicher, dass Sie die Batch-Datei über ein Eingabeaufforderungsfenster des Administrators ausführen.

Zusätzliche Bemerkungen
- Bei einigen Diensten können Fehler wie [SC] ChangeServiceConfig FAILED 5: oder ähnliches auftreten. Dies liegt an den Dienstberechtigungen oder Sicherheitsbeschreibungen, die Dienste sperren. In diesem Fall können Sie ein Eingabeaufforderungsfenster wie unter dem LOCALSYSTEM-Konto starten und die Batch-Datei ausführen.
- In Windows 10 werden viele Dienstnamen mit einem Unterstrich (
_
) und einigen Zahlen angezeigt. Diese Zahlen (Suffix) stimmen möglicherweise nicht mit denen anderer Windows 10-Computer überein. Hier sind einige Beispiele:- AarSvc_8561415
- BcastDVRUserService_8561415
- BluetoothUserService_8561415
- CaptureService_8561415
- cbdhsvc_8561415
- CDPUserSvc_8561415
- ConsentUxUserSvc_8561415
- CredentialEnrollmentManagerUserSvc_8561415
- DeviceAssociationBrokerSvc_8561415
- DevicePickerUserSvc_8561415
- DevicesFlowUserSvc_8561415
- LxssManagerUser_8561415
- MessagingService_8561415
- OneSyncSvc_8561415
- PimIndexMaintenanceSvc_8561415
- PrintWorkflowUserSvc_8561415
- UnistoreSvc_8561415
- UserDataSvc_8561415
- WpnUserService_8561415
Das Nummernsuffix
8561415
in den oben genannten (Kurz-)8561415
auf anderen Windows 10-Computern möglicherweise nicht identisch. Dies ist eine Sache, auf die Sie achten müssen, wenn Sie die Einstellungen auf einem anderen Windows 10-Computer wiederherstellen. Das Wiederherstellen dieser Dienste mit dem Befehl SC.exe kann außerdem den Fehler ChangeServiceConfig FAILED 87 verursachen: Der Parameter ist falsch .
Für ältere Windows-Versionen
Verwenden Sie für Windows-Versionen vor Windows 10 (Windows Vista bis Windows 8.1) das Skript services_conf_backup.zip. Beachten Sie, dass das ältere Skript den automatischen Starttyp (verzögerter Start) aufgrund einer WMI-Einschränkung nicht unterstützt. Automatisch und Automatisch (verzögerter Start) werden gleich behandelt.