Windows 배포 샘플 스크립트

업데이트 날짜: 2014년 5월

적용 대상: Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2

다음 스크립트는 Windows 이미지 적용, 수주 후 생산 방식: 온라인 설치를 사용하여 개별 PC의 최종 업데이트 만들기Windows 이미지 배포: PC 활성화 및 보안 유지에서 Windows 이미지 파일을 사용하여 PC를 설정하고 원스톱 복원 기능을 구성하는 데 사용됩니다. 이러한 응답 파일은 OEM 파트너 센터에서 다운로드할 수 있습니다.

이러한 코드 샘플은 대부분 일반 텍스트로, 메모장에서 저장할 수 있습니다. 별도로 언급된 일부 샘플은 UTF-8 파일 형식으로 저장해야 합니다.

샘플은 UEFI 기반 PC와 BIOS 기반 PC에 모두 제공됩니다.

이러한 스크립트는 Windows 이미지 적용, 수주 후 생산 방식: 온라인 설치를 사용하여 개별 PC의 최종 업데이트 만들기Windows 이미지 배포: PC 활성화 및 보안 유지에서 Windows 이미지 파일을 사용하여 PC를 설정하는 데 사용됩니다.

DiskPart와 함께 이러한 스크립트를 사용하면 복구 도구를 비롯한 Windows용 하드 디스크 파티션을 포맷하고 설정할 수 있습니다. 필요한 경우 드라이브에 맞게 파티션 크기를 조정합니다.

  • UEFI:

    Windows RE 도구 파티션, 시스템, MSR, Windows 및 복구 이미지 파티션을 만듭니다.

    이 스크립트는 임시로 드라이브 문자 WinRE 도구=T, 시스템=S, Windows=C 및 복구=R을 할당합니다. 하드 드라이브가 포맷되지 않은 PC에 배포하려는 경우 드라이브 문자 충돌을 피하기 위해 이 스크립트를 수정하여 W와 같이 알파벳 마지막 문자에 가까운 드라이브 문자를 사용하는 것이 좋습니다. X는 Windows PE용으로 예약되어 있으므로 사용하지 마세요. PC가 다시 부팅된 후에 Windows 파티션에 문자 C가 할당되고 다른 파티션에는 드라이브 문자가 할당되지 않습니다.

    다음 다이어그램에는 결과 파티션 구성이 나와 있습니다.

    복구를 포함하는 EFI 파티션 다이어그램
    rem == CreatePartitions-UEFI.txt ==
    rem == These commands are used with DiskPart to
    rem    set up the drive and ecreate five partitions
    rem    for a UEFI/GPT-based PC.
    rem    Adjust the partition sizes to fill the drive
    rem    as necessary. ==
    select disk 0
    clean
    convert gpt
    rem == 1. Windows RE tools partition ===============
    create partition primary size=300
    format quick fs=ntfs label="Windows RE tools"
    assign letter="T"
    set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
    gpt attributes=0x8000000000000001
    rem == 2. System partition =========================
    create partition efi size=100
    rem ** NOTE: For Advanced Format 4Kn drives,
    rem          change this value to size = 260 **
    format quick fs=fat32 label="System"
    assign letter="S"
    rem == 3. Microsoft Reserved (MSR) partition =======
    create partition msr size=128
    rem == 4. Windows partition ========================
    rem ==    a. Create the Windows partition ==========
    create partition primary 
    rem ==    b. Create space for the recovery image ===
    shrink minimum=15000
    rem ==    c. Prepare the Windows partition ========= 
    format quick fs=ntfs label="Windows"
    assign letter="C"
    rem === 5. Recovery image partition ================
    create partition primary
    format quick fs=ntfs label="Recovery image"
    assign letter="R"
    set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
    gpt attributes=0x8000000000000001
    list volume
    exit
    
  • BIOS:

    시스템, Windows 및 복구 이미지 파티션을 만듭니다.

    이 스크립트는 임시로 드라이브 문자 시스템=S, Windows=C 및 복구=R을 할당합니다. 하드 드라이브가 포맷되지 않은 PC에 배포하려는 경우 드라이브 문자 충돌을 피하기 위해 이 스크립트를 수정하여 W와 같이 알파벳 마지막 문자에 가까운 드라이브 문자를 사용하는 것이 좋습니다. X는 Windows PE용으로 예약되어 있으므로 사용하지 마세요. PC가 다시 부팅된 후에 Windows 파티션에 문자 C가 할당되고 다른 파티션에는 드라이브 문자가 할당되지 않습니다.

    다음 다이어그램에는 결과 파티션 구성이 나와 있습니다.

    파티션 다이어그램: 복구, 시스템, Windows
    rem == CreatePartitions-BIOS.txt ==
    rem == These commands are used with DiskPart to
    rem    set up the drive and create three partitions
    rem    for a BIOS/MBR-based PC.
    rem    Adjust the partition sizes to fill the drive
    rem    as necessary. ==
    select disk 0
    clean
    rem == 1. System partition ======================
    create partition primary size=350
    format quick fs=ntfs label="System"
    assign letter="S"
    active
    rem == 2. Windows partition =====================
    rem ==    a. Create the Windows partition =======
    create partition primary
    rem ==    b. Create space for the recovery image  
    shrink minimum=15000
    rem ==    c. Prepare the Windows partition ====== 
    format quick fs=ntfs label="Windows"
    assign letter="C"
    rem == 3. Recovery image partition ==============
    create partition primary
    format quick fs=ntfs label="Recovery image"
    assign letter="R" 
    set id=27
    list volume
    exit
    

하드 디스크 파티션을 만든 후 이 스크립트를 사용하여 Windows 이미지를 PC에 적용하고 각 파티션을 설정할 수 있습니다. Windows 이미지의 파일은 새로 만들어진 각 파티션을 구성하는 데 사용됩니다.

  • UEFI:

    rem == ApplyImage-UEFI.bat ==
    
    rem == These commands deploy a specified Windows
    rem    image file to the Windows partition, and configure
    rem    the system partition.
    
    rem    Usage:   ApplyImage WimFileName 
    rem    Example: ApplyImage E:\Images\ThinImage.wim ==
    
    rem == Copy the image to the recovery partition ==
    md R:\RecoveryImage
    copy %1 R:\RecoveryImage\Install.wim
    
    rem == Apply the image to the Windows partition ==
    dism /Apply-Image /ImageFile:"R:\RecoveryImage\Install.wim" /Index:1 /ApplyDir:C:\
    
    rem == Copy boot files to the System partition ==
    C:\Windows\System32\bcdboot C:\Windows /s S:
    
    :rem == Copy the Windows RE image to the
    :rem    Windows RE Tools partition ==
    md T:\Recovery\WindowsRE
    xcopy /h C:\Windows\System32\Recovery\Winre.wim T:\Recovery\WindowsRE\
    
    :rem == Register the location of the recovery tools ==
    C:\Windows\System32\Reagentc /Setreimage /Path T:\Recovery\WindowsRE /Target C:\Windows
    
    :rem == Register the location of the
    :rem    push-button reset recovery image. ==
    C:\Windows\System32\Reagentc /Setosimage /Path R:\RecoveryImage /Target C:\Windows /Index 1
    
    :rem == Restrict permissions of recovery folder to local Admin group
    C:\Windows\System32\icacls R:\RecoveryImage /inheritance:r /T
    C:\Windows\System32\icacls R:\RecoveryImage /grant:r SYSTEM:(F) /T
    C:\Windows\System32\icacls R:\RecoveryImage /grant:r *S-1-5-32-544:(F) /T
    
    :rem == Verify the configuration status of the images. ==
    C:\Windows\System32\Reagentc /Info /Target C:\Windows
    
  • BIOS:

    rem == ApplyImage-BIOS.bat ==
    
    rem == These commands deploy a specified Windows
    rem    image file to the Windows partition, and configure
    rem    the system partition.
    
    rem    Usage:   ApplyImage WimFileName 
    rem    Example: ApplyImage E:\Images\ThinImage.wim ==
    
    rem == Copy the image to the recovery partition ==
    md R:\RecoveryImage
    copy %1 R:\RecoveryImage\Install.wim
    
    rem == Apply the image to the Windows partition ==
    dism /Apply-Image /ImageFile:"R:\RecoveryImage\Install.wim" /Index:1 /ApplyDir:C:\
    
    rem == Copy boot files to the System partition ==
    C:\Windows\System32\bcdboot C:\Windows
    
    :rem == Copy the Windows RE image to the
    :rem    System partition ==
    md S:\Recovery\WindowsRE
    xcopy /h C:\Windows\System32\Recovery\Winre.wim S:\Recovery\WindowsRE\
    
    :rem == Register the location of the recovery tools ==
    C:\Windows\System32\Reagentc /Setreimage /Path S:\Recovery\WindowsRE /Target C:\Windows
    
    :rem == Register the location of the
    :rem    push-button reset recovery image. ==
    C:\Windows\System32\Reagentc /Setosimage /Path R:\RecoveryImage /Target C:\Windows /Index 1
    
    :rem == Restrict permissions of recovery folder to local Admin group
    C:\Windows\System32\icacls R:\RecoveryImage /inheritance:r /T
    C:\Windows\System32\icacls R:\RecoveryImage /grant:r SYSTEM:(F) /T
    C:\Windows\System32\icacls R:\RecoveryImage /grant:r *S-1-5-32-544:(F) /T
    
    :rem == Verify the configuration status of the images. ==
    C:\Windows\System32\Reagentc /Info /Target C:\Windows
    

DiskPart가 포함된 이러한 스크립트를 사용하면 복구 파티션이 구성된 이후에 복구 파티션을 숨길 수 있습니다.

  • UEFI:

    rem === HideRecoveryPartitions-UEFI.txt ===
    select disk 0
    select partition 1
    remove
    set id=de94bba4-06d1-4d40-a16a-bfd50179d6ac
    gpt attributes=0x8000000000000001
    select partition 5
    remove
    set id=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7
    gpt attributes=0x0000000000000001
    list volume
    exit
    
    
  • BIOS:

    rem === HideRecoveryPartitions-BIOS.txt ===
    select disk 0
    select partition 3
    set id=27
    remove
    list volume
    exit
    

이러한 구성 파일은 Windows 이미지 적용Windows 이미지 배포: PC 활성화 및 보안 유지에서 완전 복구를 지원하는 데 사용됩니다.

원본은 E:\Deployment\RecoveryImage-BIOSE:\Deployment\RecoveryImage-UEFI 폴더에 저장합니다. 여기서 E는 외장 USB 하드 드라이브의 드라이브 문자입니다. 이러한 파일은 복구 이미지 파티션 폴더인 R:\RecoveryImage\에 복사됩니다.

이 섹션에 있는 각 코드 샘플은 UTF-8 파일 형식으로 저장되어야 합니다.

ResetConfig.xml은 원스톱 복원 기능에 대한 구성 파일입니다. 이 파일은 다른 구성 파일을 로드하며 완전 초기화를 구성한 후에 파티션 구성을 정의합니다.

이 XML 파일은 UTF-8 파일 형식으로 저장되어야 합니다. 예를 들면 메모장에서 파일을 클릭한 다음 다른 이름으로 저장을 클릭합니다. 인코딩 상자에서 UTF-8을 클릭하고 이 파일을 저장합니다. ANSI 코딩은 사용하지 마세요.

각 XML 파일의 이름은 ResetConfig.xml로 지정해야 합니다. UEFI PC와 BIOS PC를 배포하는 경우 이러한 파일이 각각 저장될 별도 폴더를 만들어야 합니다.

  • UEFI:

    <?xml version="1.0" encoding="utf-8"?>
    <!-- ResetConfig.xml - UEFI version - UTF-8 File format-->
       <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>
          <Run Phase="FactoryReset_AfterDiskFormat">
             <Path>CheckPartitions.exe</Path>
             <Duration>2</Duration>
          </Run>
          <Run Phase="FactoryReset_AfterImageApply">
             <Path>InstallApps.cmd</Path>
             <Param>/allApps</Param>
             <Duration>2</Duration>
          </Run>
        <SystemDisk>
            <DiskpartScriptPath>ResetPartitions-UEFI.txt</DiskpartScriptPath>
            <MinSize>75000</MinSize>
            <WindowsREPartition>1</WindowsREPartition>
            <WindowsREPath>Recovery\WindowsRE</WindowsREPath>
            <OSPartition>4</OSPartition>
            <RecoveryImagePartition>5</RecoveryImagePartition>
            <RecoveryImagePath>RecoveryImage</RecoveryImagePath>
            <RestoreFromIndex>1</RestoreFromIndex>
            <RecoveryImageIndex>1</RecoveryImageIndex>
        </SystemDisk>
       </Reset>
    
  • BIOS:

    <?xml version="1.0" encoding="utf-8"?>
    <!-- ResetConfig.xml - BIOS version - UTF-8 File format-->
       <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>
          <Run Phase="FactoryReset_AfterDiskFormat">
             <Path>RunDxDiag.cmd</Path>
             <Duration>2</Duration>
          </Run>
          <Run Phase="FactoryReset_AfterImageApply">
             <Path>RunDxDiag.cmd</Path>
             <Duration>2</Duration>
          </Run>
        <SystemDisk>
            <DiskpartScriptPath>ResetPartitions-BIOS.txt</DiskpartScriptPath>
            <MinSize>75000</MinSize>
            <WindowsREPartition>1</WindowsREPartition>
            <WindowsREPath>Recovery\WindowsRE</WindowsREPath>
            <OSPartition>2</OSPartition>
            <RecoveryImagePartition>3</RecoveryImagePartition>
            <RecoveryImagePath>RecoveryImage</RecoveryImagePath>
            <RestoreFromIndex>1</RestoreFromIndex>
            <RecoveryImageIndex>1</RecoveryImageIndex>
        </SystemDisk>
       </Reset>
    

이 스크립트에서는 원스톱 복원 기능에 작업을 추가하는 방법을 보여 줍니다. 이 스크립트는 사용자가 PC를 복구할 때 실행되며 ResetConfig.xml에서 참조됩니다.

이 스크립트는 UTF-8 파일 형식으로 저장되어야 합니다. 예를 들면 메모장에서 파일을 클릭한 다음 다른 이름으로 저장을 클릭합니다. 인코딩 상자에서 UTF-8을 클릭하고 이 파일을 저장합니다. ANSI 코딩은 사용하지 마세요.

:rem === SaveLogFiles.cmd - UTF-8 File format ===

:rem == This sample script preserves files that would 
:rem    otherwise be removed by placing them in a 
:rem    temporary location in memory, to be retrieved by
:rem    RetrieveLogFiles.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 logs to a temporary folder in memory
mkdir X:\Temp
xcopy %TARGETOS%\Logs\*.* X:\temp /cherkyi

EXIT 0

이 스크립트에서는 원스톱 복원 기능에 작업을 추가하는 방법을 보여 줍니다. 이 스크립트는 사용자가 PC를 복구할 때 실행되며 ResetConfig.xml에서 참조됩니다.

이 스크립트는 UTF-8 파일 형식으로 저장되어야 합니다. 예를 들면 메모장에서 파일을 클릭한 다음 다른 이름으로 저장을 클릭합니다. 인코딩 상자에서 UTF-8을 클릭하고 이 파일을 저장합니다. ANSI 코딩은 사용하지 마세요.

:rem === RetrieveLogFiles.cmd - UTF-8 File format ===

: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

: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 the old logs to the new OS 
:rem       at C:\Windows\OldLogs
mkdir %TARGETOS%\OldLogs
xcopy X:\Temp\*.* %TARGETOS%\OldLogs /cherkyi

EXIT 0

이 스크립트에서는 원스톱 복원 기능에 작업을 추가하는 방법을 보여 줍니다. 이 스크립트는 사용자가 PC를 초기화할 때 실행되며 ResetConfig.xml에서 참조됩니다.

이 스크립트는 UTF-8 파일 형식으로 저장되어야 합니다. 예를 들면 메모장에서 파일을 클릭한 다음 다른 이름으로 저장을 클릭합니다. 인코딩 상자에서 UTF-8을 클릭하고 이 파일을 저장합니다. ANSI 코딩은 사용하지 마세요.

:rem === RunDxDiag.cmd - UTF-8 File format ===

:rem == This sample script runs a system diagnostic,
:rem    and sends the output to the C:\Fabrikam folder.


: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

:rem == 2. Run system diagnostics using the
:rem       DirectX Diagnostic tool, and save the 
:rem       results to the C:\Fabrikam folder. ==

mkdir %TARGETOSDRIVE%\Fabrikam
%TARGETOS%\system32\dxdiag.exe /whql:off /t %TARGETOSDRIVE%\Fabrikam\DxDiag-TestLogFiles.txt

EXIT 0

이러한 스크립트는 원스톱 복원 완전 복구 도구에서 사용되어 하드 드라이브가 복구되면 하드 드라이브의 파티션을 다시 구성합니다.

  1. UEFI:

    rem === ResetPartitions-UEFI.txt ===
    rem == These commands are used with DiskPart to
    rem    reset the drive and recreate five partitions
    rem    for a UEFI/GPT-based PC.
    rem    Adjust the partition sizes to fill the drive
    rem    as necessary. ==
    rem == The differences between this file and
    rem    CreatePartitions-UEFI.txt
    rem    are noted in parenthesis.
    rem       (NOT USED: select disk 0)
    rem       (NOT USED: clean)
    convert gpt
    rem == 1. Windows RE tools partition ===============
    create partition primary size=300
    format quick fs=ntfs label="Windows RE tools"
    assign letter="T"
    set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
    gpt attributes=0x8000000000000001
    rem == 2. System partition =========================
    create partition efi size=100
    rem ** NOTE: For Advanced Format 4Kn drives,
    rem          change this value to size = 260 **
    format quick fs=fat32 label="System"
    assign letter="S"
    rem == 3. Microsoft Reserved (MSR) partition =======
    create partition msr size=128
    rem == 4. Windows partition ========================
    rem ==    a. Create the Windows partition ==========
    create partition primary 
    rem ==    b. Create space for the recovery image ===
    shrink minimum=15000
    rem ==    c. Prepare the Windows partition ========= 
    format quick fs=ntfs label="Windows"
    assign letter="C"
    rem === 5. Recovery image partition ================
    create partition primary
    format quick fs=ntfs label="Recovery image"
    assign letter="R"
    set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
    gpt attributes=0x8000000000000001
    list volume
    exit
    
  2. BIOS:

    rem === ResetPartitions-BIOS.txt ===
    rem == These commands are used with DiskPart to
    rem    reset the drive and create three partitions
    rem    for a BIOS/MBR-based PC.
    rem    Adjust the partition sizes to fill the drive
    rem    as necessary. ==
    rem == The differences between this file and
    rem    CreatePartitions-BIOS.txt
    rem    are noted in parenthesis.
    rem       (NOT USED: select disk 0 )
    rem       (NOT USED: clean )
    rem == 1. System partition ======================
    create partition primary size=350
    format quick fs=ntfs label="System"
    assign letter="S"
    active
    rem == 2. Windows partition =====================
    rem ==    a. Create the Windows partition =======
    create partition primary
    rem ==    b. Create space for the recovery image  
    shrink minimum=15000
    rem ==    c. Prepare the Windows partition ====== 
    format quick fs=ntfs label="Windows"
    assign letter="C"
    rem == 3. Recovery image partition ==============
    create partition primary
    format quick fs=ntfs label="Recovery image"
    assign letter="R" 
    set id=27
    list volume
    exit
    

이 스크립트는 DirectX 진단 도구를 사용하여 시스템 보고서를 만든 다음 C:\Fabrikam이라는 새 폴더로 보냅니다.

md C:\Fabrikam
C:\Windows\System32\dxdiag /t C:\Fabrikam\DxDiag-TestLogFiles.txt

참고 항목

표시:
© 2015 Microsoft