Windows 展開サンプル スクリプト

更新日: 2014年5月

適用対象: Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2

以下のスクリプトは、「Windows イメージの適用」、「ビルド ツー オーダー: オンライン サービスを使った個別の PC の最終更新」、および「Windows イメージの展開: PC のアクティブ化と保護」で、Windows イメージ ファイルを使って PC を設定し、PC のリカバリー機能を構成するために使います。これらのスクリプトは、OEM パートナー センターからダウンロードできます。

これらのコード サンプルのほとんどはプレーンテキストで、メモ帳から保存できます。いくつかのサンプルは UTF-8 ファイル形式で保存する必要があり、特記事項に記載しています。

サンプルは UEFI ベースの PC と BIOS ベースの PC の両方について提供されています。

これらのスクリプトは、「Windows イメージの適用」、「ビルド ツー オーダー: オンライン サービスを使った個別の PC の最終更新」、および「Windows イメージの展開: PC のアクティブ化と保護」で、Windows イメージ ファイルを使って PC を設定するために使います。

これらのスクリプトは、回復ツールを含め、Windows のハード ディスク パーティションをフォーマットして設定するために、DiskPart と共に使います。必要に応じて、ドライブいっぱいにパーティションのサイズを調整します。

  • UEFI:

    Windows RE ツール、システム、MSR、Windows、回復イメージの各パーティションを作ります。

    このスクリプトでは、一時的にドライブ文字 (WinRE ツール = T、システム = S, Windows = C、回復 = R) が割り当てられます。フォーマットされていないハード ドライブを備えた PC に展開する場合、ドライブ文字の競合を避けるために、Windows ドライブ文字をアルファベットの終わりに近いドライブ文字 (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 に展開する場合、ドライブ文字の競合を避けるために、Windows ドライブ文字をアルファベットの終わりに近いドライブ文字 (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 は、PC のリカバリー機能用の構成ファイルです。このファイルは、ベア メタル リセットを構成した後で、他の構成ファイルを読み込んでパーティションの構成を定義します。

この 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 のリカバリー機能に操作を追加する方法を示します。これは、ユーザーが 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 のリカバリー機能に操作を追加する方法を示します。これは、ユーザーが 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 のリカバリー機能に操作を追加する方法を示します。これは、ユーザーが 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

このスクリプトは、ハード ドライブを初期状態に戻した後、ハード ドライブのパーティションを再設定するために、PC のリカバリーのベア メタル回復ツールで使われます。

  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

関連項目

表示:
© 2014 Microsoft