สำรองการกำหนดค่าชนิดเริ่มต้นบริการ Windows 10 สำรอง

2016-09-19 17:40:27
หลัก·ไมโครซอฟท์·สำรองการกำหนดค่าชนิดเริ่มต้นบริการ Windows 10 สำรอง

หลังจากติดตั้ง Windows 10 ใหม่แล้วการปิดใช้งาน Windows Services ที่ไม่ได้ใช้เป็นหนึ่งในภารกิจที่ต้องใช้เวลามาก เมื่อกำหนดค่าแล้วคุณสามารถสำรองข้อมูลสถานะเริ่มต้นบริการโดยใช้สคริปต์เพื่อให้สามารถใช้สำหรับการติดตั้งในภายหลังหรือหากคุณต้องการทำให้งานในคอมพิวเตอร์หลายเครื่องเป็นอัตโนมัติ

การสำรองข้อมูลสถานะบริการยังช่วยได้เมื่อคุณแก้ไขปัญหาบริการ Windows และต้องการย้อนกลับการเปลี่ยนแปลงที่คุณทำไว้อย่างรวดเร็ว

ที่เกี่ยวข้อง: ลบบริการใน Windows โดยใช้ Command-line, Regedit หรือ Autoruns

การกำหนดค่าบริการสำรองข้อมูล (ประเภทเริ่มต้น) ใน Windows

นี่คือการสำรองข้อมูลการกำหนดค่าเริ่มต้น Windows Services VBScript ซึ่งฉันเขียน สคริปต์สำรองสถานะเริ่มต้นของบริการทั้งหมดโดยการแสดงผลการกำหนดค่าบริการในสองรูปแบบไฟล์ - .reg (รายการลงทะเบียน) และ. .bat (ไฟล์ Windows Batch) เพื่อให้คุณกู้คืนการกำหนดค่าบริการในภายหลัง

 'คำอธิบาย: สคริปต์นี้สำรองข้อมูลการกำหนดค่าเริ่มต้นของ Windows Services เป็นไฟล์ REG 'สำหรับ Windows 10, Windows Server 2016' © 2016-2019 Ramesh Srinivasan 'เว็บไซต์: https://www.winhelponline.com/blog/' แก้ไขแล้ว: 7 ก.ค. 2019 ตัวเลือกที่ชัดเจนถ้า WScript.Arguments.length = 0 จากนั้นสลัว objShell : ตั้งค่า objShell = CreateObject ("Shell.Application") objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "Run, ", 1 Else Dim WshShell, objFSO, strNow, intServiceType, intStartupType, strDisplayName, iSvcCnt Dim "สคริปต์" SREGFile, sBATFile, sBATFile, r, b, strComputer, objWMIService, colListOfServices, ตั้งค่า WshShell = CreateObject FilesystemObject ") strNow = ปี (วันที่) & ขวา (" 0 "& เดือน (วันที่), 2) & ขวา (" 0 "& วัน (วันที่), 2) สลัว objFile: ตั้ง objFile = objFSO.GetFile (WScript.ScriptFullName ) sREGFile = objFSO.GetParentFolderName (objFile) & "\ svc_curr_state_" & strNow & sRateFile (sRATFileName = objFile) & "\ svc_curr_state" "& strNow" GFile, True) r.WriteLine "Windows Registry Editor เวอร์ชัน 5.00" r.WriteBlankLines 1 r.WriteLine ";; บริการสำรองข้อมูลการกำหนดค่าเริ่มต้น" & Now r.WriteBlankLines 1 ชุด b = objFSO.CreateTextFile (sBATFile, True) b.WriteLine "@ echo Restore Service Startup State บันทึกที่ "& Now b.WriteBlankLines 1 strComputer =" iSvcCnt = 0 Dim sStartState, sSvcName, sSkippedSvc Set objWMIService = GetObject ("winmgmts:" _ & "{impersonationLevel = impersonate}! \\" & strComputer & "\ root \ cimv2" * จาก Win32_Service ") สำหรับแต่ละ objService ใน colListOfServices iSvcCnt = iSvcCnt + 1 r.WriteLine r.WriteLine" [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ "และตัด (objService.Name) &"] "sStartState = lcase (sjStartMart) objService.Name เลือก Case sStartState Case "boot" r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000000" b.WriteLine "sc.exe config" & sSvcName & "start = boot" ตัวพิมพ์เล็ก "system" r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000001" b.WriteLine "sc.exe config" & sSvcName & "start = system" อัตโนมัติ "Case" ถ้ามันเป็นอัตโนมัติ (เริ่มล่าช้า) r.WriteLine chr (34) & "เริ่มต้น" & Chr (34) & "= dword: 00000002" ถ้า objService.DelayedAutoStart = จริงแล้ว r.WriteLine chr (34) & "DelayedAutostart" (34) & "= dword: 00000001" b.WriteLine "sc.exe config" & sSvcName & "start = ล่าช้าอัตโนมัติ" อื่น r.WriteLine chr (34) & "DelayedAutostart" & Chr (34) & "= -" b.WriteLine "sc.exe config" & sSvcName & "start = auto" สิ้นสุดถ้า Case "manual" r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000003" b.WriteLine "sc.exe config" & sSvcName & "start = demand "Case" ถูกปิดใช้งาน "r.WriteLine chr (34) &" Start "& Chr (34) &" = dword: 00000004 "b.WriteLine" sc.exe config "& sSvcName &" start = ปิดใช้งาน "Case" ไม่ทราบ "sSkippedSvc = sSkippedSvc & ", " & sSvcName 'กรณีอื่นสิ้นสุดเลือก r.WriteBlankLines 1 ถัดไปถ้าตัด (sSkippedSvc) "" จากนั้น WScript.Echo iSvcCnt & "พบบริการ บริการ "& sSkippedSvc &" ไม่สามารถสำรองข้อมูลได้ "Else WScript.Echo iSvcCnt &" พบบริการและการกำหนดค่าเริ่มต้นสำรอง "สิ้นสุดถ้า r.Close b.WriteLine" @ หยุด "b.Close WshShell.Run" notepad.exe "& sREGFile WshShell.Run" notepad.exe "& sBATFile Set objFSO = ไม่มีชุด WshShell = ไม่มีอะไรสิ้นสุดถ้า 

วิธีใช้ VBScript

  1. คัดลอกบรรทัดด้านบนของรหัสไปยัง Notepad
  2. บันทึกไฟล์ด้วยนามสกุล. vbs - เช่น services_startup_config_backup.vbs
  3. ดับเบิลคลิกเพื่อเรียกใช้สคริปต์

สคริปต์จะเปิดใช้งานอีกครั้งในฐานะผู้ดูแลระบบ (ยกระดับ) และสอบถามรายการบริการ Windows และการกำหนดค่าประเภทเริ่มต้น ผลลัพธ์จะถูกเขียนลงในไฟล์ .reg และ .reg .bat สำหรับการกู้คืนในภายหลัง ไฟล์สองไฟล์ถูกสร้างขึ้นในโฟลเดอร์เดียวกันกับสคริปต์

ไฟล์ที่ส่งออกจะมีคำนำหน้า svc_curr_state _ แล้วตามด้วยวันที่ปัจจุบันในรูปแบบ yyyymmdd - เช่น svc_curr_state_20190706.reg & svc_curr_state_20190706.bat

หมายเหตุ: สคริปต์ยังคำนึงถึงว่ามีการกำหนดค่าบริการสำหรับการเริ่มต้นล่าช้าหรือไม่ สำหรับบริการที่มีประเภทการเริ่มต้นโดยอัตโนมัติ (เริ่มล่าช้า) จะมีการใช้ค่ารีจิสตรีเพิ่มเติมชื่อ DelayedAutoStart หาก DelayedAutoStart ถูกตั้งค่าเป็น 1 และค่าเริ่มต้นถูกตั้งค่าเป็น 2 (อัตโนมัติ) จากนั้นบริการจะถูกกำหนดค่าเป็น อัตโนมัติ (เริ่มล่าช้า) และไฟล์แบทช์จะมีความ delayed-auto เป็นโหมดเริ่มต้นสำหรับบริการเหล่านั้น

ที่เกี่ยวข้อง: วิธีการสำรองข้อมูลรีจิสทรีโดยอัตโนมัติใน Windows 10

การกู้คืนการกำหนดค่าประเภทการเริ่มต้นบริการ

ในการกู้คืนการกำหนดค่าประเภทการเริ่มต้นบริการจากการสำรองข้อมูลให้เลือกหนึ่งในสองรูปแบบ

ไฟล์. reg

หากคุณใช้ไฟล์. reg เพื่อกู้คืนการตั้งค่าเริ่มต้นบริการคุณจะต้องรีสตาร์ท Windows หลังจากใช้ไฟล์. reg เพื่อกำหนดค่าบริการเพื่อรีเฟรช นี่เป็นวิธีที่ต้องการ

ไฟล์. bat

ไฟล์ Batch มีคำสั่ง SC ที่จะเปลี่ยนการกำหนดค่าเริ่มต้นของบริการในเวลาจริง คุณไม่จำเป็นต้องรีสตาร์ทหากใช้วิธีนี้ ตรวจสอบให้แน่ใจว่าคุณเรียกใช้ไฟล์แบตช์จากหน้าต่างพรอมต์คำสั่งของผู้ดูแลระบบ

ที่เกี่ยวข้อง: การ กำหนดค่าบริการเริ่มต้นของ Windows 10

หมายเหตุเพิ่มเติม

  1. สำหรับบริการบางอย่างคุณอาจพบข้อผิดพลาดเช่น [SC] ChangeServiceConfig FAILED 5: หรือคล้ายกัน นี่คือสาเหตุที่สิทธิ์บริการหรือตัวบอกความปลอดภัยซึ่งล็อคบริการ ในกรณีนั้นคุณสามารถเปิดหน้าต่างพร้อมรับคำสั่งภายใต้บัญชี LOCALSYSTEM และเรียกใช้ไฟล์แบทช์
  2. ใน Windows 10 คุณจะเห็นชื่อบริการจำนวนมากที่มีเครื่องหมายขีดล่าง ( _ ) และตามด้วยตัวเลขบางตัว ตัวเลข (ส่วนต่อท้าย) เหล่านี้อาจไม่ตรงกับของคอมพิวเตอร์ Windows 10 อื่น ๆ นี่คือตัวอย่างบางส่วน:
    • 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

    หมายเลขต่อท้าย 8561415 ในชื่อบริการ (สั้น ๆ ) ด้านบนอาจไม่เหมือนกันในคอมพิวเตอร์ Windows 10 อื่น ๆ นั่นเป็นสิ่งหนึ่งที่คุณต้องระวังเมื่อกู้คืนการตั้งค่าไปยังคอมพิวเตอร์ Windows 10 เครื่องอื่น นอกจากนี้การกู้คืนบริการเหล่านี้โดยใช้คำสั่ง SC.exe อาจทำให้เกิดข้อผิดพลาด ChangeServiceConfig FAILED 87: พารามิเตอร์ไม่ถูกต้อง

สำหรับ Windows รุ่นเก่า

สำหรับ Windows เวอร์ชันก่อนหน้า Windows 10 (Windows Vista ถึง Windows 8.1) ให้ใช้สคริปต์ services_conf_backup.zip โปรดทราบว่าสคริปต์ที่เก่ากว่าไม่รองรับประเภทการเริ่มอัตโนมัติ (เริ่มล่าช้า) - เนื่องจากมีข้อ จำกัด WMI จะถือว่า อัตโนมัติ และ อัตโนมัติ (เริ่มล่าช้า) เหมือนกัน

ตัวเลือกของบรรณาธิการ