Hinzufügen von Erweiterungsskripts zu den Features zum Zurücksetzen auf Knopfdruck

OEMs können benutzerdefinierte Skripte einfügen, die ausgeführt werden, wenn ein Benutzer die Rücksetzfunktionen per Drucktaste ausführt: Meine Dateien beibehalten und Alles entfernen.

Sie können entweder Erweiterungsskripts oder Automatisches Anwenden von Ordnern verwenden, um allgemeine Anpassungen wiederherzustellen, die nicht andernfalls wiederhergestellt werden, einschließlich:

  • Das Startmenü
  • Taskleiste
  • OOBE
  • Unattend.xml Anpassungen

Darüber hinaus können Erweiterungsskripte bei der Durchführung anderer Aufgaben helfen, wie z. B.:

Hinweis

Wenn Sie automatisches Anwenden von Ordnern einschließen, sollten Sie keine Erweiterungsskripts einschließen. Wenn Sie sowohl automatisches Anwenden von Ordnern als auch Erweiterungsskripts einschließen, werden die Automatisch angewendeten Ordner ignoriert.

Informationen zum Hinzufügen von Erweiterungsskripts

Um Erweiterungsskripts hinzuzufügen, müssen Sie die folgenden Konzepte verstehen:

Skripte während der Wiederherstellung aktivieren

Zum Hinzufügen von Erweiterungsskripten zum Zurücksetzen der Drucktaste fügen Sie Folgendes in den C:\Recovery\OEM Ordner ein:

  • Eine Konfigurationsdatei für das Zurücksetzen per Drucktaste (ResetConfig.xml), die festlegt, welche Skripts ausgeführt werden sollen.
  • Die Erweiterungsskripts
  • Alle Dateien, die von den Erweiterungsskripts erforderlich sind.

Erweiterbarkeitsskripts

Anforderungen:

  • Die Skripts werden als .cmd - oder .exe-Dateien formatiert.
  • Die Skripts hängen nicht von optionalen Windows PE-Komponenten ab, die nicht im Standardbild Windows RE (winre.wim) vorhanden sind.
  • Die Skripts hängen nicht von Binärdateien (z. B. .exe oder .dll Dateien) ab, die nicht im Standardbild Windows RE Bild (winre.wim) vorhanden sind.
  • Die Skripts werden ausgeführt, ohne eine grafische Benutzeroberfläche (GUI) anzuzeigen.
  • Die Skripts schließen alle vorgesehenen Funktionen innerhalb von 5 Minuten für jeden Erweiterungspunkt ab.
  • Das Skript darf die Laufwerkbuchstaben nicht ändern. Dies kann zum Scheitern der Wiederherstellung führen.
  • Das Skript muss eine 0 (Null) zurückgeben, wenn es erfolgreich ist. Wenn das Zurücksetzen per Drucktaste einen Wert ungleich 0 empfängt, werden die folgenden Schritte ausgeführt:
    • Wenn Sie das Feature Dateien beibehalten ausführen: Alle Systemänderungen werden zurückgesetzt. Wenn das Skript oder die ausführbare Datei im Windows-PC-Einstellungsmenü initiiert wird, startet das System in Windows neu. Wenn das Skript oder die ausführbare Datei aus Windows RE oder dem Menü Erweiterter Start initiiert wird, bleibt das System in Windows RE und zeigt eine Fehlermeldung an.
    • Wenn Sie das Feature Alles entfernen ausführen: Der Fehler wird ignoriert. Das Skript oder die ausführbare Datei fährt mit dem nächsten Schritt im Rücksetzungsprozess fort und protokolliert den Fehler.

Konfigurationsdatei für das Zurücksetzen per Drucktaste (ResetConfig.xml)

Fügen Sie eine ResetConfig.xml Datei hinzu, die auf Ihre Erweiterungsskripte für das Zurücksetzen per Drucktaste verweist.

Diese Datei muss mit dem Dateityp UTF-8 gespeichert werden. Verwenden Sie keine ANSI-Codierung. Beispiel: Klicken Sie in Notepad auf Datei und dann auf Speichern unter. Wählen Sie im Feld Kodierung die Option UTF-8.

Speichern Sie diese Datei, und kopieren Sie sie in die Windows-Bilder als C:\Recovery\OEM\ResetConfig.xml.

Sie können dieselbe ResetConfig.xml Datei verwenden, um Windows zum Erstellen von Wiederherstellungsmedien zu konfigurieren. Weitere Informationen finden Sie unter Einsatz von Rücksetzfunktionen per Drucktaste.

Es gibt vier Erweiterungspunkte, die Sie verwenden können, um auf Skripts zu verweisen, die am Anfang und am Ende der Vorgänge Meine Dateien behalten oder Alles entfernen ausgeführt werden. Für allgemeine Anpassungen benötigen Sie in der Regel nur ein einzelnes Skript, wie im folgenden Beispielskript dargestellt.

Erweiterungspunkte

Das Feature Meine Dateien beibehalten kann in den folgenden Schritten zusammengefasst werden:

  1. PC startet in die Windows-Wiederherstellungsumgebung (Windows RE).
  2. ERWEITERUNGSPUNKT A (BasicReset_BeforeImageApply): Fügen Sie hier ein Skript hinzu, um Dateien, Treiber oder Einstellungen zu kopieren, die standardmäßig nicht migriert werden, wenn der Benutzer das Feature Meine Dateien beibehalten ausführt.
  3. Benutzerkonten, Einstellungen und Daten werden gesammelt und an einen temporären Speicherort verschoben.
  4. Eine neue Kopie des Betriebssystems wird an einem temporären Speicherort mit Dateien aus dem Windows Component Store erstellt.
  5. Anpassungen, die in Bereitstellungspaketen unter C:\Wiederherstellungs\Anpassungen gespeichert sind, werden auf das neue Betriebssystem angewendet.
  6. Treiber werden aus dem vorhandenen Betriebssystem kopiert und in das neue Betriebssystem eingefügt.
  7. Vorinstallierte Windows-Apps werden von ihrem Sicherungsspeicherort wiederhergestellt.
  8. Systemkritische Einstellungen werden auf das neue Betriebssystem angewendet.
  9. Vorhandenes Betriebssystem wird in C:\Windows.old verschoben.
  10. Neues Betriebssystem wird in das Stammverzeichnis des Betriebssystemvolumes verschoben.
  11. ERWEITERUNGSPUNKT B (BasicReset_AfterImageApply): Fügen Sie hier ein Skript hinzu, um Anpassungsdateien (unattend.xml, layoutmodification.xml) wiederherzustellen oder Dateien und Einstellungen wiederherzustellen, die Sie möglicherweise an Erweiterungspunkt A gesichert haben.
  12. PC startet mit dem neuen Betriebssystem neu.
  13. Während des ersten Starts werden die Benutzerdaten und -einstellungen neu angewendet.

Das Feature Alles entfernen kann in den folgenden Schritten zusammengefasst werden:

  1. PC startet in die Windows-Wiederherstellungsumgebung (Windows RE).
  2. Benutzerkonten, Daten und installierte Windows-Apps und Windows-Desktopanwendungen werden aus dem Betriebssystemvolume entfernt.
  3. Datenvolumen werden formatiert (falls vom Benutzer angefordert).
  4. Die Datenlöschung erfolgt auf Betriebssystem- und Datenvolumen (falls vom Benutzer angefordert).
  5. ERWEITERUNGSPUNKT C (FactoryReset_AfterDiskFormat): Fügen Sie hier ein Skript hinzu, um Datenpartitionen bei Bedarf neu zu konfigurieren. Wichtig: Ändern Sie die Windows-Partition nicht.
  6. Eine neue Kopie des Betriebssystems wird an einem temporären Speicherort mit Dateien aus dem Windows Component Store erstellt.
  7. Anpassungen, die in Bereitstellungspaketen unter C:\Wiederherstellungs\Anpassungen gespeichert sind, werden auf das neue Betriebssystem angewendet.
  8. Treiber werden aus dem vorhandenen Betriebssystem kopiert und in das neue Betriebssystem eingefügt.
  9. Vorinstallierte universelle Windows-Apps werden von ihrem Sicherungsspeicherort wiederhergestellt.
  10. Vorhandenes Betriebssystem wird entfernt.
  11. Neues Betriebssystem wird in das Stammverzeichnis des Betriebssystemvolumes verschoben.
  12. ERWEITERUNGSPUNKT D (FactoryReset_AfterImageApply): Fügen Sie hier ein Skript hinzu, um Anpassungsdateien wiederherzustellen (unattend.xml, layoutmodification.xml).
  13. PC startet mit dem neuen Betriebssystem neu.
  14. OOBE beginnt.

Beispiel: Wiederherstellung der Anpassungen von Startmenü, Taskleiste, OOBE und unattend.xml

Im Folgenden finden Sie ein Beispielskript und eine Beispieldatei ResetConfig.xml, die zusammenarbeiten, um allgemeine Anpassungen während des Zurücksetzens per Drucktaste unter Windows 11 wiederherzustellen. Sie können die Wiederherstellung per Drucktaste anhand dieser Beispiele testen. So testen Sie diese Beispiele:

  • Speichern Sie folgendes im C:\Recovery\OEM Ordner:
    • Das Beispielskript, CommonCustomizations.cmd
    • Die Konfigurationsdatei für das Zurücksetzen per Drucktaste, ResetConfig.xml
    • Eine Kopie der Konfigurationsdatei „Startmenü“ (LayoutModification.json)
    • Eine Kopie der Konfigurationsdatei „Taskleiste“ (TaskbarLayoutModification.xml)
    • Eine Kopie der unattend.xml Datei

Im Folgenden finden Sie ein Beispielskript und eine Beispieldatei ResetConfig.xml, die zusammenarbeiten, um allgemeine Anpassungen während des Zurücksetzens per Drucktaste unter Windows 10 wiederherzustellen. Sie können die Wiederherstellung per Drucktaste anhand dieser Beispiele testen. So testen Sie diese Beispiele:

  • Speichern Sie folgendes im C:\Recovery\OEM Ordner:
    • Das Beispielskript, CommonCustomizations.cmd
    • Die Konfigurationsdatei für das Zurücksetzen per Drucktaste, ResetConfig.xml
    • Eine Kopie der Konfigurationsdatei „Startmenü“ (LayoutModification.xml)
    • Eine Kopie der Konfigurationsdatei „Taskleiste“ (TaskbarLayoutModification.xml)
    • Eine Kopie der unattend.xml Datei
  • Kopieren Sie den gesamten OOBE-Ordner und seine Unterordner %WINDIR%\System32\Oobe\Info\ in C:\Recovery\OEM\OOBE\Info.

CommonCustomizations.cmd

Diese Datei kopiert Anpassungsdateien aus dem Wiederherstellungsordner in das wiederhergestellte Betriebssystem.

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

Hinweis

Dieses Beispiel verweist zweimal auf dasselbe Skript, so dass es sowohl für die Funktionen Meine Dateien behalten als auch Alles entfernen verwendet werden kann.

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

Aufbewahrung und Abruf von Dateien

Mit dem Feature Meine Dateien beibehalten können Sie Beispielskripts verwenden, um Dateien beizubehalten, die andernfalls entfernt werden würden, indem Sie sie an einem temporären Speicherort im Arbeitsspeicher platzieren. Dateien mit dem Feature Alles entfernen können nicht beibehalten werden.

Sie können die folgenden Speicherorte für den Speicher verwenden, falls erforderlich.

  • Windows PE RAM-Laufwerk (X:). Dieses virtuelle Laufwerk wird von Windows PE erstellt und bleibt während des Prozesses Meine Dateien beibehalten aktiv. Sie können es mit dem Feature Meine Dateien beibehalten verwenden, um Daten zu speichern, bevor die Partition aktualisiert wird, und um die Daten nach Abschluss der Partitionsaktualisierung wiederherzustellen. Die Menge der verfügbaren Arbeitsspeicher ist auf die Menge an RAM auf dem System beschränkt, minus die Menge an RAM, die für die Windows RE Tools benötigt wird, wenn vollständig erweitert. Anweisungen zum Anbringen von Windows RE und Bestimmen der vollständig erweiterten Dateigröße finden Sie unter Anpassen Windows RE.

  • Angegebene OEM-Partition. Sie können zusätzlichen Raum auf einer Partition verlassen. So können Sie beispielsweise Platz auf der Partition des Wiederherstellungsabbilds lassen und mithilfe von Skripten vorübergehend einen Laufwerksbuchstaben zuweisen und dann Dateien auf dieser Partition speichern. Wenn Ihr Benutzer jedoch das Wiederherstellungsmedium zur Neupartitionierung der Festplatten verwendet, können die Daten auf diesen Partitionen während des Wiederherstellungsprozesses verloren gehen.

Diese Beispielskripts behalten die Windows-Protokolldateien bei. Speichern Sie diese Skripts im C:\Recovery\OEM Ordner.

Beispiel für ResetConfig.xml, das Dateien beibehält

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

Beispiel für ein Erweiterungsskript, das Dateien beibehält

SaveLogFiles.cmd: Speichert Protokolldateien in einem temporären Ordner im Speicher

: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

Beispiel für ein Erweiterungsskript, das Dateien abruft

RetrieveLogFiles.cmd: Ruft die Dateien ab, die durch das Skript SaveLogFiles.cmd im Speicher gespeichert wurden.

: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

Alternative Methode: Kopieren von Skripts nach der Bereitstellung

Kurz nachdem Ihr Benutzer OOBE abgeschlossen hat, werden die Wiederherstellungsskripts vom C:\Recovery\OEM Ordner in die Wiederherstellungspartition auf R:\RecoveryImage\ verschoben.

Im unwahrscheinlichen Fall, dass das Zurücksetzen per Drucktaste verwendet wird, bevor dieser Vorgang stattgefunden hat, können diese Skripte nicht ausgeführt werden. Um dies zu verhindern, können Sie Ihre Wiederherstellungsdateien direkt auf die Wiederherstellungspartition kopieren, R:\RecoveryImage\ nachdem Ihr Abbild bereitgestellt wurde.

Nächste Schritte

Nachdem Sie den Vorgang des Zurücksetzens per Drucktaste angepasst haben, können Sie das Wiederherstellungsabbild für das Zurücksetzen per Drucktaste (Install.wim) auf der Partition für das Wiederherstellungsabbild bereitstellen.

Um das Diskpart-Skript, die Datei ResetConfig.xml und das Wiederherstellungsabbild für das Zurücksetzen per Drucktaste (install.wim) auf die Partition des Wiederherstellungsabbilds des Ziel-PCs zu kopieren, folgen Sie den Anweisungen im Abschnitt Einsetzen von Funktionen zum Zurücksetzen per Drucktaste.

Übersicht über das Zurücksetzen per Drucktaste

Medien zum Ausführen von Rücksetzfunktionen per Drucktaste erstellen

Einsatz von Funktionen zum Zurücksetzen per Drucktaste

REAgentC-Befehlszeilenoptionen

ResetConfig-XML-Referenz