بعد إجراء تثبيت جديد لنظام التشغيل Windows 10 ، يعد تعطيل خدمات Windows غير المستخدمة إحدى المهام التي تستغرق وقتًا طويلاً. بمجرد التهيئة ، يمكنك إجراء نسخ احتياطي لحالة بدء تشغيل الخدمة باستخدام برنامج نصي بحيث يمكن استخدامه لعمليات التثبيت اللاحقة أو إذا كنت بحاجة إلى أتمتة المهمة على العديد من أجهزة الكمبيوتر.
يمكن أن تساعدك النسخ الاحتياطية لحالة الخدمات أيضًا عند استكشاف أخطاء خدمات Windows وإصلاحها وتريد التراجع عن التغييرات التي أجريتها بسرعة.
ذات الصلة: حذف خدمة في Windows باستخدام سطر الأوامر أو Regedit أو التشغيل التلقائيتكوين خدمات النسخ الاحتياطي (نوع بدء التشغيل) في Windows
هنا هو VBScript النسخ الاحتياطي تكوين بدء تشغيل خدمات Windows الذي كتبته. يقوم البرنامج النصي بعمل نسخة احتياطية لحالة بدء التشغيل لجميع الخدمات عن طريق إخراج تكوين الخدمات بتنسيقين من الملفات - .reg
(إدخالات التسجيل) و .bat
(ملف Windows Batch) لاستعادة تكوين الخدمات لاحقًا.
'الوصف: يقوم هذا البرنامج النصي بعمل نسخة احتياطية من تكوين بدء تشغيل خدمات Windows إلى ملف REG. 'لنظام التشغيل Windows 10 و Windows Server 2016' © 2016-2019 Ramesh Srinivasan 'موقع الويب: https://www.winhelponline.com/blog/' تمت مراجعته: 07 يوليو 2019 Option Explicit If WScript.Arguments.length = 0 ثم 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.sject.SjectOgject (") FilesystemObject ") strNow = السنة (التاريخ) واليمين (" 0 "والشهر (التاريخ) ، 2) واليمين (" 0 "واليوم (التاريخ) ، 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 & sjtO "تعيين". GFile ، True) r.WriteLine "Windows Registry Editor الإصدار 5.00" r.WriteBlankLines 1 r.WriteLine "؛ النسخ الاحتياطي لتكوين بدء تشغيل الخدمات" والآن r.WriteBlankLines 1 مجموعة b = objFSO.CreateTextFile (sBATFile ، True) b.WriteLine "@ تم حفظ حالة بدء تشغيل خدمة استعادة الصدى في "& الآن b.WriteBlankLines 1 strComputer =". " iSvcCnt = 0 Dim sStartState، sSvcName، sSkippedSvc Set objWMIService = GetObject ("winmgmts:" _ & "{impersonationLevel = impersonate}! \\" & strComputer & "\ root \ cimv2") تعيين colListOfServices = objWMervice. * من Win32_Service ") لكل objService في colListOfServices iSvcCnt = iSvcCnt + 1 r.WriteLine" [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ "& trim (objService.Name) &"] sStartState = lcase (objS) objService.Name حدد الحالة 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 "auto" 'Check إذا كانت تلقائية (بداية متأخرة) r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000002" If objService.DelayedAutoStart = True ثم r.WriteLine chr (34) & "DelayedAutostart" & Chr (34) & "= dword: 00000001" b.WriteLine "sc.exe config" & sSvcName & "start = delayed-auto" Else r.WriteLine chr (34) & "DelayedAutostart" & Chr (34) & "= -" b.WriteLine "sc.exe config" & sSvcName & "start = auto" End If Case "manual" r.WriteLine chr (34) & "Start" & Chr (34) & "= dword: 00000003" b.WriteLine "sc.exe config" & sSvcName & "start = request "Case" تعطيل "r.WriteLine chr (34) &" Start "& Chr (34) &" = dword: 00000004 "b.WriteLine" sc.exe config "& sSvcName &" start = المعوقين "sskippedSvc" Case "unknown = sSkippedSvc & "،" & sSvcName 'Case Else End حدد r.WriteBlankLines 1 التالي إذا تم تقليم (sSkippedSvc) "" ثم WScript.Echo iSvcCnt & "تم العثور على الخدمات. تعذر نسخ الخدمات "& sSkippedSvc &". "Else WScript.Echo iSvcCnt &" تم العثور على الخدمات وعمل نسخة احتياطية من تكوين بدء التشغيل. "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
كيفية استخدام VBScript؟
- انسخ سطور التعليمات البرمجية أعلاه إلى المفكرة
- احفظ الملف بامتداد .vbs - على سبيل المثال ،
services_startup_config_backup.vbs
. - انقر نقرًا مزدوجًا لتشغيل البرنامج النصي.
يعيد البرنامج النصي إعادة تشغيل نفسه كمسؤول (مرتفع) ويستعلم عن قائمة خدمات Windows وتكوين نوع بدء التشغيل الخاص بها. النتائج مكتوبة على ملفات .reg
و .bat
للاستعادة لاحقًا. يتم إنشاء الملفين في نفس المجلد مثل البرنامج النصي.
ستحتوي ملفات الإخراج على البادئة svc_curr_state _ ثم متبوعة بالتاريخ الحالي بتنسيق yyyymmdd - على سبيل المثال ، svc_curr_state_20190706.reg
& svc_curr_state_20190706.bat
ملاحظة: يأخذ البرنامج النصي أيضًا في الاعتبار ما إذا كان قد تم تكوين خدمة لبداية متأخرة أم لا. بالنسبة للخدمات ذات نوع بدء التشغيل التلقائي (البدء المؤجل) ، يتم استخدام قيمة تسجيل إضافية تسمى DelayedAutoStart
. إذا تم تعيين DelayedAutoStart على 1 وتم تعيين قيمة البدء على 2 (تلقائي) ، فسيتم تكوين الخدمة على أنها تلقائية (بدء متأخر) . وسوف يكون لملف Batch delayed-auto
كوضع بدء التشغيل لهذه الخدمات.
استعادة تكوين نوع بدء تشغيل الخدمات
لاستعادة تكوين نوع بدء تشغيل الخدمات من النسخ الاحتياطي ، اختر أحد التنسيقين.
ملف .reg
إذا كنت تستخدم ملف .reg لاستعادة تفضيلات بدء تشغيل الخدمة ، فستحتاج إلى إعادة تشغيل Windows بعد تطبيق ملف .reg لتهيئة الخدمات لتحديثها. هذه هي الطريقة المفضلة.
ملف .bat
يحتوي الملف الدفعي على أوامر SC التي ستغير تكوين بدء تشغيل الخدمات في الوقت الفعلي. لا تحتاج إلى إعادة تشغيل إذا كنت تستخدم الطريقة. تأكد من تشغيل الملف الدفعي من نافذة موجه أوامر المسؤول.
ذات الصلة: تكوين خدمات Windows 10 الافتراضيةملاحظات إضافية
- بالنسبة لبعض الخدمات ، قد تواجه أخطاء مثل [SC] ChangeServiceConfig FAILED 5: أو ما شابه. ويرجع ذلك إلى أذونات الخدمة أو واصفات الأمان التي تقوم بتأمين الخدمات. في هذه الحالة ، يمكنك تشغيل نافذة موجه الأوامر كما هو الحال في حساب LOCALSYSTEM وتشغيل الملف الدفعي.
- في Windows 10 ، يمكنك رؤية العديد من أسماء الخدمات التي تحتوي على تسطير سفلي (
_
) متبوعًا ببعض الأرقام. قد لا تتطابق هذه الأرقام (لاحقة) مع أجهزة الكمبيوتر الأخرى التي تعمل بنظام Windows 10. وهنا بعض الأمثلة:- AarSvc_8561415
- BcastDVRUserService_8561415
- BluetoothUserService_8561415
- CaptureService_8561415
- cbdhsvc_8561415
- CDPUserSvc_8561415
- موافقة UxUserSvc_8561415
- CredentialEnrollmentManagerUserSvc_8561415
- DeviceAss AssociationBrokerSvc_8561415
- DevicePickerUserSvc_8561415
- الأجهزة FlowUserSvc_8561415
- LxssManagerUser_8561415
- خدمة الرسائل
- OneSyncSvc_8561415
- PimIndexMaintenanceSvc_8561415
- PrintWorkflowUserSvc_8561415
- UnistoreSvc_8561415
- UserDataSvc_8561415
- WpnUserService_8561415
قد لا تكون الأرقام لاحقة
8561415
في أسماء الخدمات (القصيرة) المذكورة أعلاه هي نفسها في أجهزة الكمبيوتر الأخرى التي تعمل بنظام Windows 10. هذا شيء تحتاج إلى الانتباه إليه ، عند استعادة الإعدادات إلى جهاز كمبيوتر آخر يعمل بنظام Windows 10. أيضاً ، قد تؤدي استعادة هذه الخدمات باستخدام الأمر SC.exe إلى حدوث خطأ ChangeServiceConfig 87: المعلمة غير صحيحة .
للإصدارات القديمة من Windows
بالنسبة لإصدارات Windows الأقدم من Windows 10 (Windows Vista حتى Windows 8.1) ، استخدم البرنامج النصي services_conf_backup.zip. لاحظ أن البرنامج النصي الأقدم لا يدعم نوع البدء التلقائي (بدء متأخر) - بسبب قيود WMI. يعامل التلقائي والتلقائي (البدء المؤجل) كما هو.