När du har gjort en ny installation av Windows 10 är inaktivering av oanvända Windows-tjänster en av de tidskrävande uppgifterna du utför. När den har konfigurerats kan du säkerhetskopiera servicestartstillståndet med ett skript så att det kan användas för efterföljande installationer eller om du behöver automatisera uppgiften på flera datorer.
Tjänstes säkerhetskopior kan också hjälpa dig när du felsöker Windows-tjänster och vill snabbt återuppta ändringarna du gjort.
RELATERAD: Radera en tjänst i Windows med hjälp av kommandorad, Regedit eller AutorunsBackup Services-konfiguration (starttyp) i Windows
Här är en Windows Services startkonfiguration VBScript som jag skrev. Skriptet säkerhetskopierar starttillståndet för alla tjänster genom att mata ut servicekonfigurationen i två filformat - .reg
(registreringsposter) och .bat
(Windows Batch-fil) så att du kan återställa servicekonfigurationen senare.
'Beskrivning: Detta skript säkerhetskopierar Windows Services startkonfiguration till en REG-fil. 'För Windows 10, Windows Server 2016' © 2016-2019 Ramesh Srinivasan 'Webbplats: https://www.winhelponline.com/blog/' Reviderad: 7 juli, 2019 Alternativ Explicit Om WScript.Arguments.length = 0 Sedan Dim objShell : Ställ in 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." FilesystemObject ") strNow = Year (Date) & Right (" 0 "& Month (Date), 2) & Right (" 0 "& Day (Date), 2) Dim objFile: Set objFile = objFSO.GetFile (WScript.ScriptFullName ) sREGFile = objFSO.GetParentFolderName (objFile) & "\ svc_curr_state_" & strNow & ".reg" sBATFile = objFSO.GetParentFolderName (objFile) & "\ svc_curr_state_" & strNow & rTxt = "objFile" GFile, True) r.WriteLine "Windows Registry Editor Version 5.00" r.WriteBlankLines 1 r.WriteLine "; Tjänster Startup Configuration Backup" & Now r.WriteBlankLines 1 Ställ b = objFSO.CreateTextFile (sBATFile, True) b.WriteLine " echo Restore Service Startup State sparad vid "& Nu b.WriteBlankLines 1 strComputer =". " iSvcCnt = 0 Dim sStartState, sSvcName, sSkippedSvc Ställ objWMIService = GetObject ("winmgmts:" _ & "{impersonationLevel = impersonate}! \\" & strComputer & "\ root \ cimv2") Ställ in colListOfServices = obxWIS Select * från Win32_Service ") För varje objService i colListOfServices iSvcCnt = iSvcCnt + 1 r.WriteLine" [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ "& trim (objService.Name) &"] "sStartState = lcasetSupport =) objService.Name Välj Case 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" 'Kontrollera om det är automatisk (fördröjd start) r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000002" If objService.DelayedAutoStart = True Then r.WriteLine chr (34) & "DelayedAutostart" & Chr (34) & "= dword: 00000001" b.WriteLine "sc.exe config" & sSvcName & "start = delayed-auto" Annars r.WriteLine chr (34) & "DelayedAutostart" & Chr (34) & "= -" b.WriteLine "sc.exe config" & sSvcName & "start = auto" Avsluta om fall "manual" r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000003" b.WriteLine "sc.exe config" & sSvcName & "start = demand "Fall" inaktiverat "r.WriteLine chr (34) &" Start "& Chr (34) &" = dword: 00000004 "b.WriteLine" sc.exe config "& sSvcName &" start = inaktiverat "Fall" okänt "sSkippedSvc = sSkippedSvc & ", " & sSvcName 'Fall på annat sätt Välj r.WriteBlankLines 1 Nästa Om trim (sSkippedSvc) "" Sedan hittades WScript.Echo iSvcCnt & "Tjänster. Tjänsterna "& sSkippedSvc &" kunde inte säkerhetskopieras. "Annars WScript.Echo iSvcCnt &" Tjänster hittade och deras startkonfiguration säkerhetskopieras. "Slut om r.Close b.WriteLine" @pause "b.Close WshShell.Run" notepad.exe "& sREGFile WshShell.Run" notepad.exe "& sBATFile Set objFSO = Ingenting anger WshShell = Ingenting slut om
Hur använder man VBScript?
- Kopiera ovanstående kodrader till Notepad
- Spara filen med filtillägget .vbs - t.ex.
services_startup_config_backup.vbs
. - Dubbelklicka för att köra skriptet.
Skriptet startar om sig själv som administratör (upphöjd) och frågar listan över Windows-tjänster och deras konfiguration av starttyp. Resultaten skrivs till .reg
och .bat
filer för senare återställning. De två filerna skapas i samma mapp som skriptet.
Utdatafilerna kommer att ha prefixet svc_curr_state _ och sedan följt av det aktuella datumet i yyyymmdd-format - t.ex. svc_curr_state_20190706.reg
& svc_curr_state_20190706.bat
Obs: Skriptet tar också hänsyn till om en tjänst är konfigurerad för en försenad start eller inte. För tjänster med automatisk uppstartstyp (fördröjd start) används ett extra registervärde med namnet DelayedAutoStart
. Om DelayedAutoStart är inställt på 1 och Start-värdet är inställt på 2 (Automatic), kommer tjänsten att konfigureras som Automatic (försenad start) . Och batchfilen har den delayed-auto
som startläge för dessa tjänster.
Återställa konfigurationen för uppstart av tjänster
Välj ett av de två formaten för att återställa konfigurationen för uppstart av tjänster från säkerhetskopiering.
.reg fil
Om du använder .reg-filen för att återställa inställningarna för serviceuppstart måste du starta om Windows efter att du har använt .reg-filen för servicekonfigurationen för att uppdatera. Detta är dock den föredragna metoden.
.bat-fil
Batch-filen innehåller SC-kommandon som kommer att ändra startkonfigurationen för tjänsterna i realtid. Du behöver inte starta om om du använder metoden. Se till att du kör batchfilen från ett admin-kommandotolken-fönster.
RELATERADE: Windows 10 Standard Services-konfigurationYtterligare anmärkningar
- För vissa tjänster kan du stöta på fel som [SC] ChangeServiceConfig FAILED 5: eller liknande. Detta beror på servicetillstånd eller säkerhetsbeskrivningar som låser tjänster. I så fall kan du starta ett Command Prompt-fönster som under LOCALSYSTEM-kontot och köra Batch-filen.
- I Windows 10 kan du se många servicenamn som har understreck (
_
) och följt av några nummer. Dessa nummer (suffix) kanske inte matchar med andra Windows 10-datorer. Här är några exempel:- 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
Siffrorna
8561415
i ovanstående tjänster (korta) namn kanske inte är desamma i andra Windows 10-datorer. Det är en sak du måste se upp för när du återställer inställningarna till en annan Windows 10-dator. Att återställa dessa tjänster med kommandot SC.exe kan också orsaka felet ChangeServiceConfig FAILED 87: Parametern är felaktig .
För äldre versioner av Windows
För Windows-versioner tidigare än Windows 10 (Windows Vista till Windows 8.1), använd skriptets tjänster_conf_backup.zip. Observera att det äldre skriptet inte stöder automatisk (fördröjd start) starttyp - på grund av en WMI-begränsning. Den behandlar automatisk och automatisk (försenad start) som samma.