Script di esempio di Windows Deployment

Aggiornamento: maggio 2014

Si applica a: Windows 8, Windows 8.1, Windows Server 2012, Windows Server 2012 R2

I seguenti script sono usati in Applicare immagini Windows, Build-to-order: usare l'installazione online per apportare gli aggiornamenti finali a singoli PC e Distribuire immagini Windows: attivare e proteggere i PC per configurare i PC usando un file di immagine Windows e per configurare le funzionalità di reimpostazione rapida. È possibile scaricarli dal centro per i partner OEM.

La maggior parte degli esempi di codice è in formato testo normale e può essere salvata dal Blocco note. Alcuni degli esempi, quando indicato, devono essere salvati nel formato di file UTF-8.

Gli esempi sono disponibili sia per i PC basati su UEFI che per quelli basati su BIOS.

Questi script sono usati in Applicare immagini Windows, Build-to-order: usare l'installazione online per apportare gli aggiornamenti finali a singoli PC e Distribuire immagini Windows: attivare e proteggere i PC per configurare i PC usando un file di immagine di Windows.

Usa questi script insieme a DiskPart per formattare e configurare le partizioni del disco rigido per Windows, inclusi gli strumenti di ripristino. Adattare le dimensioni delle partizioni in modo da riempire l'unità quanto necessario.

  • UEFI:

    Crea la partizione per gli strumenti di Ambiente ripristino Windows, la partizione di sistema, la partizione MSR, la partizione di Windows e la partizione dell'immagine di ripristino.

    Lo script assegna temporaneamente queste lettere di unità: strumenti di Ambiente ripristino Windows = T, sistema = S, Windows = C e ripristino = R. Se stai effettuando la distribuzione in PC con unità disco rigido non formattate, modifica la lettera di unità di Windows usando una delle ultime dell'alfabeto, ad esempio W, in modo da evitare eventuali conflitti tra lettere di unità. Non usare X, perché tale lettera è riservata per Windows PE. Dopo il riavvio del PC, la partizione di Windows viene assegnata alla lettera C e alle altre partizioni non vengono assegnate lettere di unità.

    Il diagramma seguente mostra la configurazione delle partizioni risultante:

    Diagramma delle partizioni EFI inclusa quella di ripristino
    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:

    Crea le partizioni di sistema, di Windows e dell'immagine di ripristino.

    Lo script assegna temporaneamente queste lettere di unità: sistema = S, Windows = C e ripristino = R. Se stai effettuando la distribuzione in PC con unità disco rigido non formattate, modifica la lettera di unità di Windows usando una delle ultime dell'alfabeto, ad esempio W, in modo da evitare eventuali conflitti tra lettere di unità. Non usare X, perché tale lettera è riservata per Windows PE. Dopo il riavvio del PC, la partizione di Windows viene assegnata alla lettera C e alle altre partizioni non vengono assegnate lettere di unità.

    Il diagramma seguente mostra la configurazione delle partizioni risultante:

    Diagramma delle partizioni: di ripristino, di sistema, 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
    

Usa questo script dopo aver creato le partizioni del disco rigido per applicare un'immagine Windows al PC e configurare ogni partizione. I file dell'immagine Windows vengono usati per configurare ogni nuova partizione creata.

  • 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
    

Usa questi script con DiskPart per nascondere le partizioni di ripristino dopo averle configurate.

  • 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
    

Questi file di configurazione sono usati in Applicare immagini Windows e Distribuire immagini Windows: attivare e proteggere i PC per il supporto del ripristino bare metal.

Salva gli originali nelle cartelle E:\Deployment\RecoveryImage-BIOS e E:\Deployment\RecoveryImage-UEFI, dove E rappresenta la lettera di unità associata al disco rigido USB esterno. Questi file verranno copiati nella cartella della partizione dell'immagine di ripristino: R:\RecoveryImage\.

Ogni esempio di codice in questa sezione deve essere salvato nel formato di file UTF-8.

ResetConfig.xml è un file di configurazione per la funzionalità reimpostazione rapida. Questo file carica gli altri file di configurazione e definisce la configurazione della partizione dopo che avrai configurato il ripristino bare metal.

Questo file XML deve essere salvato nel formato UTF-8. Ad esempio, nel Blocco note fai clic su File e scegli Salva con nome. Nella casella Codifica fai clic su UTF-8 e salva il file. Non usare la codifica ANSI.

Ogni file XML deve essere denominato ResetConfig.xml. Se devi distribuire PC sia UEFI che BIOS, crea cartelle separate per archiviare questi file.

  • 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>
    

Questo script mostra come aggiungere azioni alla funzionalità reimpostazione rapida. Viene eseguito quando un utente reinizializza il PC e ResetConfig.xml contiene un riferimento a questo script.

Questo script deve essere salvato nel formato di file UTF-8. Ad esempio, nel Blocco note fai clic su File e scegli Salva con nome. Nella casella Codifica fai clic su UTF-8 e salva il file. Non usare la codifica 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

Questo script mostra come aggiungere azioni alla funzionalità reimpostazione rapida. Viene eseguito quando un utente reinizializza il PC e ResetConfig.xml contiene un riferimento a questo script.

Questo script deve essere salvato nel formato di file UTF-8. Ad esempio, nel Blocco note fai clic su File e scegli Salva con nome. Nella casella Codifica fai clic su UTF-8 e salva il file. Non usare la codifica 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

Questo script mostra come aggiungere azioni alla funzionalità reimpostazione rapida. Viene eseguito quando un utente ripristina le impostazioni di fabbrica del PC e ResetConfig.xml contiene un riferimento a questo script.

Questo script deve essere salvato nel formato di file UTF-8. Ad esempio, nel Blocco note fai clic su File e scegli Salva con nome. Nella casella Codifica fai clic su UTF-8 e salva il file. Non usare la codifica 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

Questi script vengono usati dagli strumenti di ripristino bare metal per la reimpostazione rapida allo scopo di ripartizionare l'unità disco rigido dopo la reimpostazione.

  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
    

Questo script crea un rapporto di sistema usando lo Strumento di diagnostica DirectX e lo invia a una nuova cartella denominata C:\Fabrikam.

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

Vedere anche

Mostra:
© 2014 Microsoft