Windows 10 서비스 백업 유형 구성 백업

2016-09-19 17:40:27
메인·마이크로 소프트·Windows 10 서비스 백업 유형 구성 백업

Windows 10을 새로 설치 한 후 사용하지 않는 Windows 서비스를 비활성화하는 것은 시간이 많이 걸리는 작업 중 하나입니다. 일단 구성되면 스크립트를 사용하여 서비스 시작 상태를 백업하여 후속 설치에 사용하거나 여러 컴퓨터에서 작업을 자동화해야하는 경우에 사용할 수 있습니다.

서비스 상태 백업은 Windows 서비스 문제를 해결하고 변경 사항을 신속하게 롤백하려는 경우에도 도움이됩니다.

관련 : 명령 줄, Regedit 또는 자동 실행을 사용하여 Windows에서 서비스 삭제

Windows의 백업 서비스 구성 (시작 유형)

다음은 내가 작성한 Windows 서비스 시작 구성 백업 VBScript입니다. 이 스크립트는 나중에 서비스 구성을 복원 할 수 있도록 .reg (등록 항목) 및 .bat (Windows 배치 파일)의 두 가지 파일 형식으로 서비스 구성을 출력하여 모든 서비스의 시작 상태를 백업합니다.

 '설명 :이 스크립트는 Windows 서비스 시작 구성을 REG 파일로 백업합니다. 'Windows 10, Windows Server 2016'© 2016-2019 Ramesh Srinivasan '웹 사이트 : https://www.winhelponline.com/blog/'개정 : 2019 년 7 월 7 일 옵션 명시 적 경우 WScript.Arguments.length = 0이면 Dim objShell : objShell = CreateObject ( "Shell.Application") objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 다른 Dim WshShell, objFSO, strNow, intServiceType, intStartupType, strDisplayName, iSvcCnt Dim sREGFile, sBATFile, r, b, strComputer, objWMIService, colListOfServices, objService Set WshShell = CreateObject ( "Wscript.Shell") Set objFSO "Wscript.CreateObject (CreateObject ("Wscript.Shell ") 설정 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 & ".bat"Set r = objFSO.CreateTextFile (sFile) GFile, True) r.WriteLine "Windows 레지스트리 편집기 버전 5.00"r.WriteBlankLines 1 r.WriteLine "; 서비스 시작 구성 백업"& 이제 r.WriteBlankLines 1 Set b = objFSO.CreateTextFile (sBATFile, True) b.WriteLine "@ echo 복원 서비스 시작 상태가 "& Now b.WriteBlankLines 1 strComputer ="에 저장되었습니다. iSvcCnt = 0 Dim sStartState, sSvcName, sSkippedSvc Set objWMIService = GetObject ( "winmgmts :"_ & "{impersonationLevel = impersonate}! \\"& strComputer & "\ root \ cimv2") 설정 colListOfServices = objWMIService.ExecQuery _ ( "선택 * from Win32_Service ") colListOfServices의 각 objService에 대해 iSvcCnt = iSvcCnt + 1 r.WriteLine"[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ "& trim (objService.Name) &"] "sStartState = lcase (objService.StartMode) sSvcName objService.Name 선택 사례 sStartState 사례 "boot"r.WriteLine chr (34) & "Start"& Chr (34) & "= dword : 00000000"b.WriteLine "sc.exe config"& sSvcName & "start = boot" 사례 "시스템"r.WriteLine chr (34) & "시작"& Chr (34) & "= dword : 00000001"b.WriteLine "sc.exe 구성"& sSvcName & "start = system"사례 "auto" 'Check 자동 (지연된 시작) 인 경우 r.WriteLine chr (34) & "Start"& Chr (34) & "= dword : 00000002"objService.DelayedAutoStart = True 인 경우 r.WriteLine chr (34) & "DelayedAutostart"& Chr (34) & "= dword : 00000001"b. 라이트 라인 "sc.exe 구성"& sSvcName & "start = 지연-자동"기타 r.WriteLine chr (34) & "DelayedAutostart"& Chr (34) & "=-"b.WriteLine "sc.exe 구성"& sSvcName & "시작 = 자동"종료 사례 "수동"r.WriteLine chr (34) & "시작"& Chr (34) & "= dword : 00000003"b.WriteLine "sc.exe 구성"& sSvcName & "start = 수요 "케이스"비활성화 됨 "r.WriteLine chr (34) &"시작 "& Chr (34) &"= dword : 00000004 "b.WriteLine"sc.exe 구성 "& sSvcName &"start = 비활성화 됨 "케이스"알 수 없음 "sSkippedSvc = 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.WshShell.Run" notepad.exe "& sREGFile WshShell.Run"notepad.exe "& sBATFile Set objFSO = Nothing 설정 WshShell = Nothing End If 

VBScript를 사용하는 방법?

  1. 위 코드 줄을 메모장에 복사
  2. services_startup_config_backup.vbs 와 같이 확장자가 .vbs 인 파일을 저장하십시오.
  3. 스크립트를 두 번 클릭하여 실행하십시오.

이 스크립트는 관리자 권한으로 다시 시작되어 Windows 서비스 목록과 시작 유형 구성을 쿼리합니다. 결과는 나중에 복원 할 수 있도록 .reg.bat 파일에 기록됩니다. 두 파일은 스크립트와 동일한 폴더에 작성됩니다.

출력 파일에는 접두사 svc_curr_state _가 있고 yyyymmdd 형식의 현재 날짜가 svc_curr_state_20190706.reg 예 : svc_curr_state_20190706.reg & svc_curr_state_20190706.bat

참고 : 스크립트는 서비스가 지연된 시작으로 구성되었는지 여부도 고려합니다. 자동 (지연된 시작) 시작 유형의 서비스에는 이름이 DelayedAutoStart 추가 레지스트리 값이 사용됩니다. DelayedAutoStart가 1로 설정되고 시작 값이 2 (자동)로 설정되면 서비스는 자동 (지연된 시작) 으로 구성됩니다. 그리고 배치 파일은 해당 서비스의 시작 모드 delayed-auto 됩니다.

관련 : Windows 10에서 레지스트리를 자동으로 완전히 백업하는 방법

서비스 시작 유형 구성 복원

백업에서 서비스 시작 유형 구성을 복원하려면 두 가지 형식 중 하나를 선택하십시오.

.reg 파일

.reg 파일을 사용하여 서비스 시작 환경 설정을 복원하는 경우 서비스 구성을 새로 고치려면 .reg 파일을 적용한 후 Windows를 다시 시작해야합니다. 그러나 이것이 선호되는 방법입니다.

.bat 파일

배치 파일에는 서비스의 시작 구성을 실시간으로 변경하는 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
    • 동의 UxUserSvc_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 10 이전의 Windows 버전 (Windows Vista-Windows 8.1)의 경우 services_conf_backup.zip 스크립트를 사용하십시오. 이전 스크립트는 WMI 제한으로 인해 자동 (지연된 시작) 시작 유형을 지원하지 않습니다. 자동자동 (지연된 시작) 을 동일하게 취급합니다.

에디터의 선택