Condividi tramite


Aggiungere script di estendibilità per la reimpostazione rapida

Gli OEM possono inserire script personalizzati eseguiti quando un utente esegue le funzionalità di reimpostazione rapida: mantieni i miei file e Rimuovi tutto.

È possibile usare script di estendibilità o cartelle applica automaticamente per ripristinare personalizzazioni comuni non ripristinate in altro modo, tra cui:

  • The Start Menu
  • Barra delle applicazioni
  • Configurazione guidata
  • personalizzazioni Unattend.xml

Inoltre, gli script di estendibilità possono essere utili per eseguire altre attività, ad esempio:

Nota

Se si includono cartelle applica automaticamente, non è consigliabile includere script di estendibilità. Se si includono sia cartelle di applicazione automatica che script di estendibilità, le cartelle applica automaticamente verranno ignorate.

Informazioni sull'aggiunta di script di estendibilità

Per aggiungere script di estendibilità, è necessario comprendere i concetti seguenti:

Abilitare gli script durante il ripristino

Per aggiungere script di estendibilità alla reimpostazione rapida del pulsante, aggiungere tutte le operazioni seguenti nella C:\Recovery\OEM cartella :

  • File di configurazione di reimpostazione rapida (ResetConfig.xml) che definisce gli script da eseguire.
  • Script di estendibilità
  • Tutti i file richiesti dagli script di estendibilità.

Script di estendibilità

Requisiti:

  • Gli script vengono formattati come file con estensione cmd o .exe.
  • Gli script non dipendono dai componenti facoltativi di Windows PE non presenti nell'immagine RE di Windows predefinita (winre.wim).
  • Gli script non dipendono dai file binari (ad esempio, .exe o .dll file) non presenti nell'immagine RE di Windows predefinita (winre.wim).
  • Gli script vengono eseguiti senza visualizzare un'interfaccia utente grafica (GUI).
  • Gli script completano tutte le funzioni previste entro 5 minuti per ogni punto di estendibilità.
  • Lo script non deve modificare le lettere di unità. Ciò può causare l'esito negativo del ripristino.
  • Se lo script ha esito positivo, deve restituire ( 0 zero). Se la reimpostazione rapida riceve un valore diverso da 0, vengono eseguiti i passaggi seguenti:
    • Se si esegue la funzionalità Mantieni i file : viene eseguito il rollback di tutte le modifiche di sistema. Se lo script o il file eseguibile viene avviato dal menu delle impostazioni del PC Windows, il sistema viene riavviato in Windows. Se lo script o il file eseguibile viene avviato da Windows RE o dal menu di avvio avanzato , il sistema rimane in Windows RE e visualizza un messaggio di errore.
    • Se si esegue la funzionalità Rimuovi tutto : l'errore viene ignorato. Lo script o il file eseguibile procede con il passaggio successivo del processo di reimpostazione e registra l'errore.

File di configurazione reimpostazione rapida (ResetConfig.xml)

Aggiungere un file ResetConfig.xml in modo che punti agli script di estendibilità di reimpostazione rapida.

Questo file deve essere salvato con il tipo di file UTF-8. Non usare la codifica ANSI. Ad esempio, nel Blocco note fare clic su File e quindi su Salva con nome. Nella casella Codifica selezionare UTF-8.

Salvare questo file e copiarlo nelle immagini di Windows come C:\Recovery\OEM\ResetConfig.xml.

È possibile usare lo stesso file ResetConfig.xml per configurare Windows per creare supporti di ripristino. Per altre informazioni, vedere Deploy Push-Button Reset Features.For more information, see Deploy Push-Button Reset Features.

Esistono quattro punti di estendibilità che è possibile usare per puntare agli script eseguiti vicino all'inizio e alla fine delle operazioni Mantieni i file o Rimuovi tutto . Per le personalizzazioni comuni, in genere è necessario un solo script, come illustrato nello script di esempio seguente.

Punti di estendibilità

La funzionalità Mantieni i file può essere riepilogata nei passaggi seguenti:

  1. Il PC viene avviato nell'ambiente di ripristino di Windows (Windows RE).
  2. EXTENSIBILITY POINT A (BasicReset_BeforeImageApply): aggiungere uno script qui per copiare file, driver o impostazioni di cui non viene eseguita la migrazione per impostazione predefinita quando l'utente esegue la funzionalità Mantieni i file .
  3. Gli account utente, le impostazioni e i dati vengono raccolti e spostati in una posizione temporanea.
  4. Una nuova copia del sistema operativo viene costruita in un percorso temporaneo usando i file dall'Archivio componenti di Windows.
  5. Le personalizzazioni archiviate nei pacchetti di provisioning in C:\Recovery\Customizations vengono applicate al nuovo sistema operativo.
  6. I driver vengono copiati dal sistema operativo esistente e inseriti nel nuovo sistema operativo.
  7. Le app di Windows preinstallate vengono ripristinate dal percorso di backup.
  8. Le impostazioni critiche del sistema vengono applicate al nuovo sistema operativo.
  9. Il sistema operativo esistente viene spostato in C:\Windows.old.
  10. Il nuovo sistema operativo viene spostato nella radice del volume del sistema operativo.
  11. EXTENSIBILITY POINT B (BasicReset_AfterImageApply): aggiungere uno script qui per ripristinare i file di personalizzazione (unattend.xml, layoutmodification.xml) o ripristinare file e impostazioni di cui è stato eseguito il backup nel punto di estendibilità A.
  12. Il PC viene riavviato nel nuovo sistema operativo.
  13. Durante il primo avvio, i dati utente e le impostazioni vengono riapplicati.

La funzionalità Rimuovi tutto può essere riepilogata nei passaggi seguenti:

  1. Il PC viene avviato nell'ambiente di ripristino di Windows (Windows RE).
  2. Gli account utente, i dati e le app di Windows installate e le applicazioni desktop di Windows vengono rimossi dal volume del sistema operativo.
  3. I volumi di dati vengono formattati (se richiesto dall'utente).
  4. La cancellazione dei dati viene eseguita nei volumi di dati e del sistema operativo (se richiesto dall'utente).
  5. EXTENSIBILITY POINT C (FactoryReset_AfterDiskFormat): aggiungere uno script qui per riconfigurare le partizioni di dati, se necessario. Importante: non modificare la partizione di Windows.
  6. Una nuova copia del sistema operativo viene costruita in un percorso temporaneo usando i file dall'Archivio componenti di Windows.
  7. Le personalizzazioni archiviate nei pacchetti di provisioning in C:\Recovery\Customizations vengono applicate al nuovo sistema operativo.
  8. I driver vengono copiati dal sistema operativo esistente e inseriti nel nuovo sistema operativo.
  9. Le app di Windows universali preinstallate vengono ripristinate dal percorso di backup.
  10. Il sistema operativo esistente viene rimosso.
  11. Il nuovo sistema operativo viene spostato nella radice del volume del sistema operativo.
  12. EXTENSIBILITY POINT D (FactoryReset_AfterImageApply): aggiungere uno script qui per ripristinare i file di personalizzazione (unattend.xml, layoutmodification.xml).
  13. Il PC viene riavviato nel nuovo sistema operativo.
  14. Viene avviata la Configurazione guidata.

Esempio: ripristinare le personalizzazioni del menu Start, della barra delle applicazioni, della configurazione guidata e delle unattend.xml

Di seguito è riportato lo script di esempio e il file di esempio ResetConfig.xml che interagiscono per ripristinare personalizzazioni comuni durante la reimpostazione rapida del pulsante Windows 11. È possibile testare il ripristino tramite pulsante push usando questi esempi. Per eseguire il test con questi esempi:

  • Salvare quanto segue nella C:\Recovery\OEM cartella :
    • Script di esempio CommonCustomizations.cmd
    • Il file di configurazione di reimpostazione rapidaResetConfig.xml
    • Copia del file di configurazione del menu Start (LayoutModification.json)
    • Copia del file di configurazione della barra delle applicazioni (TaskbarLayoutModification.xml)
    • Copia del file unattend.xml

Di seguito è riportato lo script di esempio e il file di esempio ResetConfig.xml che interagiscono per ripristinare personalizzazioni comuni durante la reimpostazione rapida del pulsante di Windows 10. È possibile testare il ripristino tramite pulsante push usando questi esempi. Per eseguire il test con questi esempi:

  • Salvare quanto segue nella C:\Recovery\OEM cartella :
    • Script di esempio CommonCustomizations.cmd
    • Il file di configurazione di reimpostazione rapidaResetConfig.xml
    • Copia del file di configurazione del menu Start (LayoutModification.xml)
    • Copia del file di configurazione della barra delle applicazioni (TaskbarLayoutModification.xml)
    • Copia del file unattend.xml
  • Copiare l'intera cartella OOBE e le relative sottocartelle in %WINDIR%\System32\Oobe\Info\C:\Recovery\OEM\OOBE\Info.

CommonCustomizations.cmd

Questo file copia i file di personalizzazione dalla cartella Recovery nel sistema operativo ripristinato.

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

Nota

Questo esempio punta allo stesso script due volte, in modo che possa essere usato da Mantieni i file o Rimuovi tutte le funzionalità.

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

Conservazione e recupero di file

Con la funzionalità Mantieni i file , è possibile usare script di esempio per conservare i file che altrimenti verranno rimossi, inserendoli in un percorso temporaneo in memoria. Non è possibile mantenere i file con la funzionalità Rimuovi tutto .

È possibile usare le posizioni seguenti per l'archiviazione, se necessario.

  • Unità RAM windows PE (X:). Questa unità virtuale viene creata da Windows PE e rimane attiva durante il processo Mantieni i file . È possibile usarla con la funzionalità Mantieni i file per salvare i dati prima dell'aggiornamento della partizione e per ripristinare i dati dopo il completamento dell'aggiornamento della partizione. La quantità di memoria disponibile è limitata alla quantità di RAM nel sistema, meno la quantità di RAM necessaria per gli strumenti re di Windows quando completamente espansa. Per istruzioni sul montaggio di Windows RE e sulla determinazione delle dimensioni del file completamente espanse, vedere Personalizzare Windows RE.

  • Partizione OEM designata. È possibile lasciare spazio aggiuntivo su una partizione. Ad esempio, è possibile lasciare spazio nella partizione dell'immagine di ripristino e usare script per assegnare temporaneamente una lettera di unità e quindi salvare i file in tale partizione. Tuttavia, se l'utente usa il supporto di ripristino per suddividere i dischi, i dati di queste partizioni potrebbero essere persi durante il processo di ripristino.

Questi script di esempio mantengono i file di log di Windows. Salvare questi script nella C:\Recovery\OEM cartella.

Esempio di ResetConfig.xml che mantiene i file

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

Script di estendibilità di esempio che conserva i file

SaveLogFiles.cmd: Salva i file di log in una cartella temporanea in memoria

: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

Script di estendibilità di esempio che recupera i file

RetrieveLogFiles.cmd: recupera i file salvati in memoria dallo script 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

Metodo alternativo: copiare script dopo la distribuzione

Poco tempo dopo il completamento dell'OOBE dell'utente, gli script di ripristino vengono spostati dalla C:\Recovery\OEM cartella alla partizione di ripristino, in R:\RecoveryImage\.

Nell'evento improbabile che venga usata la reimpostazione del pulsante push prima dell'esecuzione di questa operazione, questi script potrebbero non essere eseguiti. Per evitare tale possibilità, è possibile copiare i file di ripristino direttamente nella partizione di ripristino, R:\RecoveryImage\ dopo la distribuzione dell'immagine.

Passaggi successivi

Dopo aver personalizzato l'esperienza di reimpostazione del pulsante push, è possibile distribuire l'immagine di ripristino per la reimpostazione del pulsante push (Install.wim) nella partizione dell'immagine di ripristino.

Per copiare lo script Diskpart, il file ResetConfig.xml e l'immagine di ripristino del pulsante push (install.wim) nella partizione dell'immagine di ripristino del PC di destinazione, seguire le istruzioni nell'argomento Distribuisci funzionalità di reimpostazione Push-Button.

Panoramica della reimpostazione pulsante

Creare supporti per eseguire Push-Button reimpostazione delle funzionalità

Distribuire funzionalità di reimpostazione Push-Button

Opzioni di Command-Line REAgentC

Informazioni di riferimento su ResetConfig XML