다음을 통해 공유


원스톱 복원에 확장성 스크립트 추가

OEM은 사용자가 누름 단추 다시 설정 기능(내 파일 유지모두 제거)을 실행할 때 실행되는 사용자 지정 스크립트를 삽입할 수 있습니다.

확장성 스크립트 또는 폴더 자동 적용을 사용하면 다른 방법으로는 복원되지 않는 다음을 비롯한 일반적인 사용자 지정을 복원할 수 있습니다.

  • 시작 메뉴
  • 작업 표시줄
  • OOBE
  • Unattend.xml 사용자 지정

또한 확장성 스크립트는 다음과 같은 다른 작업을 수행하는 데 도움이 될 수 있습니다.

  • 데이터 또는 유틸리티 파티션 수정
  • 내 파일 유지 기능으로는 일반적으로 유지되지 않는 파일을 저장 및 복원

참고

자동 적용 폴더를 포함하는 경우 확장성 스크립트를 포함하지 않아야 합니다. 자동 적용 폴더와 확장성 스크립트를 모두 포함하면 자동 적용 폴더가 무시됩니다.

확장성 스크립트 추가 정보

확장성 스크립트를 추가하려면 다음 개념을 이해해야 합니다.

복구하는 동안 스크립트 사용

누름 단추 다시 설정에 확장성 스크립트를 추가하려면 C:\Recovery\OEM 폴더에 다음을 모두 추가합니다.

  • 어떤 스크립트를 실행할지 정의하는 원스톱 복원 구성 파일(ResetConfig.xml)
  • 확장성 스크립트
  • 확장성 스크립트에 필요한 모든 파일

확장성 스크립트

요구 사항:

  • 스크립트는 .cmd 또는 .exe 파일로 형식이 지정됩니다.
  • 기본 Windows RE 이미지(winre.wim)에 없는 Windows PE 선택적 구성 요소에 스크립트가 종속되지 않습니다.
  • 기본 Windows RE 이미지(winre.wim)에 없는 바이너리(예: .exe 또는 .dll 파일)에 스크립트가 종속되지 않습니다.
  • 스크립트는 GUI(그래픽 사용자 인터페이스)를 표시하지 않고 실행됩니다.
  • 스크립트는 각 확장 지점에 대해 의도한 모든 함수를 5분 이내에 완료합니다.
  • 스크립트는 드라이브 문자를 수정하지 않아야 합니다. 그러면 잠재적으로 복구가 실패할 수 있습니다.
  • 성공하면 스크립트는 0(영)을 반환해야 합니다. 원스톱 복원이 0이 아닌 값을 수신하면 다음 단계가 수행됩니다.
    • 내 파일 유지 기능을 실행하는 경우: 모든 시스템 변경 내용이 롤백됩니다. 스크립트 또는 실행 파일이 Windows PC 설정 메뉴에서 시작되면 시스템이 Windows에서 다시 부팅됩니다. 스크립트 또는 실행 파일이 Windows RE 또는 고급 시작 메뉴에서 시작되는 경우 시스템은 Windows RE로 유지되고 오류 메시지가 표시됩니다.
    • 모든 항목 제거 기능을 실행하는 경우: 오류가 무시됩니다. 스크립트 또는 실행 파일은 재설정 프로세스의 다음 단계로 진행하고 오류를 기록합니다.

원스톱 복원 구성 파일(ResetConfig.xml)

ResetConfig.xml 파일을 추가하여 원스톱 복원 확장성 스크립트를 가리킵니다.

이 파일은 UTF-8 파일 형식으로 저장해야 합니다. ANSI 코딩은 사용하지 마십시오. 예를 들어 메모장에서 파일을 클릭한 다음, 다른 이름으로 저장을 클릭합니다. 인코딩 상자에서 UTF-8을 선택합니다.

이 파일을 저장하고 Windows 이미지에 C:\Recovery\OEM\ResetConfig.xml로 복사합니다.

동일한 ResetConfig.xml 파일을 사용하여 복구 미디어를 생성하도록 Windows를 구성할 수 있습니다. 자세한 내용은 원스톱 복원 기능 배포를 참조하세요.

내 파일 유지 또는 모든 항목 제거 작업의 시작과 끝 부근에서 실행되는 스크립트를 가리키는 데 사용할 수 있는 네 가지 확장 지점이 있습니다. 일반적인 사용자 지정의 경우 아래 샘플 스크립트와 같이 일반적으로 단일 스크립트만 필요합니다.

확장 지점

내 파일 유지 기능은 다음 단계로 요약할 수 있습니다.

  1. PC가 Windows RE(Windows 복구 환경)로 부팅됩니다.
  2. 확장 지점 A(BasicReset_BeforeImageApply): 사용자가 내 파일 유지 기능을 실행할 때 기본적으로 마이그레이션되지 않는 파일, 드라이버 또는 설정을 복사하는 스크립트를 여기에 추가합니다.
  3. 사용자 계정, 설정 및 데이터가 수집되어 임시 위치로 이동됩니다.
  4. Windows 구성 요소 저장소의 파일을 사용하여 OS의 새 복사본이 임시 위치에 구성됩니다.
  5. C:\Recovery\Customizations 아래 프로비전 패키지에 저장된 사용자 지정이 새 OS에 적용됩니다.
  6. 드라이버가 기존 OS에서 복사되어 새 OS에 삽입됩니다.
  7. 사전 설치된 Windows 앱이 백업 위치에서 복원됩니다.
  8. 시스템에 중요한 설정이 새 OS에 적용됩니다.
  9. 기존 OS가 C:\Windows.old로 이동됩니다.
  10. 새 OS가 OS 볼륨의 루트로 이동됩니다.
  11. 확장 지점 B(BasicReset_AfterImageApply): 사용자 지정 파일(unattend.xml, layoutmodification.xml)을 복원하거나 확장 지점 A에서 백업했을 수 있는 파일 및 설정을 복원하는 스크립트를 여기에 추가합니다.
  12. PC가 새 OS로 다시 부팅됩니다.
  13. 처음 부팅하는 동안 사용자 데이터와 설정이 다시 적용됩니다.

모든 항목 제거 기능은 다음 단계로 요약할 수 있습니다.

  1. PC가 Windows RE(Windows 복구 환경)로 부팅됩니다.
  2. 사용자 계정, 데이터, 설치된 Windows 앱 및 Windows 데스크톱 응용 프로그램이 OS 볼륨에서 제거됩니다.
  3. 데이터 볼륨이 포맷됩니다(사용자가 요청한 경우).
  4. 데이터 지우기가 OS 및 데이터 볼륨에서 수행됩니다(사용자가 요청한 경우).
  5. 확장 지점 C(FactoryReset_AfterDiskFormat): 필요한 경우 데이터 파티션을 다시 구성하는 스크립트를 여기에 추가합니다. 중요: Windows 파티션을 수정하지 마세요.
  6. Windows 구성 요소 저장소의 파일을 사용하여 OS의 새 복사본이 임시 위치에 구성됩니다.
  7. C:\Recovery\Customizations 아래 프로비전 패키지에 저장된 사용자 지정이 새 OS에 적용됩니다.
  8. 드라이버가 기존 OS에서 복사되어 새 OS에 삽입됩니다.
  9. 사전 설치된 유니버설 Windows 앱이 백업 위치에서 복원됩니다.
  10. 기존 OS가 제거됩니다.
  11. 새 OS가 OS 볼륨의 루트로 이동됩니다.
  12. 확장 지점 D(FactoryReset_AfterImageApply): 사용자 지정 파일(unattend.xml, layoutmodification.xml)을 복원하는 스크립트를 여기에 추가합니다.
  13. PC가 새 OS로 다시 부팅됩니다.
  14. OOBE가 시작됩니다.

예: 시작 메뉴, 작업 표시줄, OOBE, unattend.xml 사용자 지정 복원

다음은 Windows 11의 누름 단추 다시 설정 중에 일반적인 사용자 지정을 복원하기 위해 함께 작동하는 샘플 스크립트 및 샘플 ResetConfig.xml 파일입니다. 이러한 샘플을 사용하여 누름 단추 복구를 테스트할 수 있습니다. 다음 샘플을 사용하여 테스트하려면 다음을 수행합니다.

  • C:\Recovery\OEM 폴더에 다음을 저장합니다.
    • 샘플 스크립트인 CommonCustomizations.cmd
    • 원스톱 복원 구성 파일인 ResetConfig.xml
    • 시작 메뉴 구성 파일의 복사본(LayoutModification.json)
    • 작업 표시줄 구성 파일의 복사본(TaskbarLayoutModification.xml)
    • unattend.xml 파일의 복사본

다음은 Windows 10의 누름 단추 다시 설정 중에 일반적인 사용자 지정을 복원하기 위해 함께 작동하는 샘플 스크립트 및 샘플 ResetConfig.xml 파일입니다. 이러한 샘플을 사용하여 누름 단추 복구를 테스트할 수 있습니다. 다음 샘플을 사용하여 테스트하려면 다음을 수행합니다.

  • C:\Recovery\OEM 폴더에 다음을 저장합니다.
    • 샘플 스크립트인 CommonCustomizations.cmd
    • 원스톱 복원 구성 파일인 ResetConfig.xml
    • 시작 메뉴 구성 파일의 복사본(LayoutModification.xml)
    • 작업 표시줄 구성 파일의 복사본(TaskbarLayoutModification.xml)
    • unattend.xml 파일의 복사본
  • 전체 OOBE 폴더와 그 하위 폴더인 %WINDIR%\System32\Oobe\Info\C:\Recovery\OEM\OOBE\Info에 복사합니다.

CommonCustomizations.cmd

이 파일은 복구 폴더의 사용자 지정 파일을 복구된 OS로 복사합니다.

rem CommonCustomizations.cmd

rem Define %TARGETOS% as the Windows folder (This later becomes C:\Windows) 
for /F "tokens=1,2,3 delims= " %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironment" /v TargetOS') DO SET TARGETOS=%%C

rem Define %TARGETOSDRIVE% as the Windows partition (This later becomes C:)
for /F "tokens=1 delims=\" %%A in ('Echo %TARGETOS%') DO SET TARGETOSDRIVE=%%A

rem Add back Windows settings, Start menu, Taskbar, and OOBE.xml customizations
copy "%TARGETOSDRIVE%\Recovery\OEM\Unattend.xml" "%TARGETOS%\Panther\Unattend.xml" /y
copy "%TARGETOSDRIVE%\Recovery\OEM\LayoutModification.json" "%TARGETOSDRIVE%\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.json" /y
copy "%TARGETOSDRIVE%\Recovery\OEM\TaskbarLayoutModification.xml" "%TARGETOS%\OEM\TaskbarLayoutModification.xml" /y
xcopy "%TARGETOSDRIVE%\Recovery\OEM\OOBE\Info" "%TARGETOS%\System32\Oobe\Info\" /s

rem Recommended: Create a pagefile for devices with 1GB or less of RAM.
wpeutil CreatePageFile /path=%TARGETOSDRIVE%\PageFile.sys /size=256

EXIT 0
rem CommonCustomizations.cmd

rem Define %TARGETOS% as the Windows folder (This later becomes C:\Windows) 
for /F "tokens=1,2,3 delims= " %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironment" /v TargetOS') DO SET TARGETOS=%%C

rem Define %TARGETOSDRIVE% as the Windows partition (This later becomes C:)
for /F "tokens=1 delims=\" %%A in ('Echo %TARGETOS%') DO SET TARGETOSDRIVE=%%A

rem Add back Windows settings, Start menu, Taskbar, and OOBE.xml customizations
copy "%TARGETOSDRIVE%\Recovery\OEM\Unattend.xml" "%TARGETOS%\Panther\Unattend.xml" /y
copy "%TARGETOSDRIVE%\Recovery\OEM\LayoutModification.xml" "%TARGETOSDRIVE%\Users\Default\AppData\Local\Microsoft\Windows\Shell\LayoutModification.xml" /y
copy "%TARGETOSDRIVE%\Recovery\OEM\TaskbarLayoutModification.xml" "%TARGETOS%\OEM\TaskbarLayoutModification.xml" /y
xcopy "%TARGETOSDRIVE%\Recovery\OEM\OOBE\Info" "%TARGETOS%\System32\Oobe\Info\" /s

rem Recommended: Create a pagefile for devices with 1GB or less of RAM.
wpeutil CreatePageFile /path=%TARGETOSDRIVE%\PageFile.sys /size=256

EXIT 0

ResetConfig.xml

참고

이 예는 동일한 스크립트를 두 번 가리키므로 내 파일 유지 또는 모두 제거 기능에서 사용할 수 있습니다.

<?xml version="1.0" encoding="utf-8"?>
<!-- ResetConfig.xml -->
<Reset>
  <Run Phase="BasicReset_AfterImageApply">
    <Path>CommonCustomizations.cmd</Path>
    <Duration>2</Duration>
  </Run>
  <Run Phase="FactoryReset_AfterImageApply">
    <Path>CommonCustomizations.cmd</Path>
    <Duration>2</Duration>
  </Run>
  <!-- May be combined with Recovery Media Creator
       configurations – insert SystemDisk element here -->
</Reset>

파일 보존 및 검색

내 파일 유지 기능을 사용하면 샘플 스크립트를 사용하여 메모리의 임시 위치에 파일을 배치함으로써 그렇지 않으면 제거될 파일을 보존할 수 있습니다. 모든 항목 제거 기능으로는 파일을 유지할 수 없습니다.

필요한 경우 다음 위치를 스토리지에 사용할 수 있습니다.

  • Windows PE RAM 드라이브(X:). 이 가상 드라이브는 Windows PE에서 생성되며 내 파일 유지 프로세스 중에 활성 상태로 유지됩니다. 내 파일 유지 기능에 사용하여 파티션을 새로 고치기 전에 데이터를 저장하고 파티션 새로 고침이 완료된 후 데이터를 복원할 수 있습니다. 사용 가능한 메모리의 양은 시스템의 RAM 용량에서 완전히 확장되었을 때 Windows RE 도구에 필요한 RAM 용량을 뺀 값으로 제한됩니다. Windows RE를 탑재하고 완전히 확장된 파일 크기를 정하는 방법에 대한 지침은 Windows RE 사용자 지정을 참조하세요.

  • 지정된 OEM 파티션. 파티션에 여유 공간을 남겨둘 수 있습니다. 예를 들어 복구 이미지 파티션에 공간을 남겨두고 스크립트를 사용하여 드라이브 문자를 임시로 할당한 다음, 해당 파티션에 파일을 저장할 수 있습니다. 단, 사용자가 복구 미디어를 사용하여 디스크를 다시 분할하는 경우에는 복구 프로세스 중에 해당 파티션의 데이터가 손실될 수 있습니다.

이러한 샘플 스크립트는 Windows 로그 파일을 보존합니다. 이러한 스크립트는 C:\Recovery\OEM 폴더에 저장합니다.

파일을 보존하는 샘플 ResetConfig.xml

<?xml version="1.0" encoding="utf-8"?>
<!-- ResetConfig.xml -->
   <Reset>
      <Run Phase="BasicReset_BeforeImageApply">
         <Path>SaveLogFiles.cmd</Path>
         <Duration>4</Duration>
      </Run>      
      <Run Phase="BasicReset_AfterImageApply">
         <Path>RetrieveLogFiles.cmd</Path>
         <Duration>2</Duration>
      </Run>
      <!-- May be combined with Recovery Media Creator
       configurations – insert SystemDisk element here -->
   </Reset>

파일을 보존하는 샘플 확장성 스크립트

SaveLogFiles.cmd: 메모리의 임시 폴더에 로그 파일 저장

:rem == SaveLogFiles.cmd

:rem == 1. Use the registry to identify the location of
:rem       the new operating system and the primary hard
:rem       drive. For example, 
:rem       %TARGETOS% may be defined as C:\Windows
:rem       %TARGETOSDRIVE% may be defined as C:
for /F "tokens=1,2,3 delims= " %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironment" /v TargetOS') DO SET TARGETOS=%%C

for /F "tokens=1 delims=\" %%A in ('Echo %TARGETOS%') DO SET TARGETOSDRIVE=%%A

:rem == 2. Copy old Windows logs to a temporary folder in memory
mkdir X:\Temp
xcopy %TARGETOS%\Logs\*.* X:\temp\OldLogs /cherkyi

EXIT 0

파일을 검색하는 샘플 확장성 스크립트

RetrieveLogFiles.cmd: SaveLogFiles.cmd 스크립트를 통해 메모리에 저장된 파일을 검색합니다.

:rem == RetrieveLogFiles.cmd

:rem == This sample script retrieves the files that 
:rem    were saved in memory by 
:rem    SaveLogFiles.cmd,
:rem    and adds them back to the system.

:rem == 1. Use the registry to identify the location of
:rem       the new operating system and the primary drive.
:rem        
:rem       %TARGETOS% is the Windows folder 
:rem          (This later becomes C:\Windows)
:rem       %TARGETOSDRIVE% is the Windows partition 
:rem          (This later becomes C:)
for /F "tokens=1,2,3 delims= " %%A in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\RecoveryEnvironment" /v TargetOS') DO SET TARGETOS=%%C
for /F "tokens=1 delims=\" %%A in ('Echo %TARGETOS%') DO SET TARGETOSDRIVE=%%A

:rem == 2. Copy the old logs to the new OS 
:rem       at C:\Windows\OldLogs
mkdir %TARGETOS%\OldLogs
xcopy X:\Temp\OldLogs\* %TARGETOS%\OldLogs /cherkyi

EXIT 0

대체 방법: 배포 후 스크립트 복사

사용자가 OOBE를 완료하고 잠시 후 복구 스크립트가 C:\Recovery\OEM 폴더에서 복구 파티션(R:\RecoveryImage\)으로 이동됩니다.

이 작업이 수행되기 전에 원스톱 복원이 사용된 경우에는 이러한 스크립트가 실행되지 않을 수 있습니다. 이러한 가능성을 방지하기 위해 이미지가 배포된 후 복구 파일을 복구 파티션 R:\RecoveryImage\에 직접 복사할 수 있습니다.

다음 단계

원스톱 복원 환경을 사용자 지정했으면 이제 원스톱 복원의 복구 이미지(Install.wim)를 복구 이미지 파티션에 배포할 수 있습니다.

Diskpart 스크립트, ResetConfig.xml 파일 및 원스톱 복원 복구 이미지(install.wim)를 대상 PC의 복구 이미지 파티션에 복사하려면 원스톱 복원 기능 배포 항목의 지침을 따릅니다.

원스톱 복원 개요

원스톱 복원 기능을 실행할 미디어 만들기

원스톱 복원 기능 배포

REAgentC 명령줄 옵션

ResetConfig XML 참조