Benutzerdefinierte Aktionen während der Funktionsaktualisierung ausführen
Übersicht
IT-Experten können ein Featureupdate anpassen, indem sie ihre eigenen benutzerdefinierten Aktionsskripts während und nach einem Featureupdate ausführen. Benutzerdefinierte Aktionen sind ab Windows 10 Version 1803 verfügbar.
Ausführen benutzerdefinierter Aktionen
Informationen zu benutzerdefinierten Aktionen
Benutzerdefinierte Aktionen sind CMD-Skripts, die während des Featureupdatevorgangs ausgeführt werden. Diese können während vier Phasen eines Featureupdates ausgeführt werden:
- Vorinstallationsphase: Diese Phase wird beim Starten des Setups ausgeführt, aber vorherige Kompatibilitätsprüfungen. Aktionen während dieser Phase werden in
preinstall.cmd
. Wenn die Skripts fehlschlagen, schlägt das Featureupdate fehl. - Vorab-Commit-Phase: Diese Phase befindet sich vor der Anwendung des Featureupdates und dem Systemneustart. Aktionen während dieser Phase werden in
precommit.cmd
. Wenn die Skripts fehlschlagen, schlägt das Featureupdate fehl. - Phase nach der Deinstallation: Diese Phasen werden ausgeführt, nachdem ein Benutzer eine Deinstallation eines Featureupdates initiiert hat. Aktionen während dieser Phase werden in
postuninstall.cmd
.postuninstall.cmd
ist neu für Windows 10, Version 2004. - Abschluss: Diese Phase erfolgt nach Abschluss des Setups. Wenn das Featureupdate fehlschlägt oder zurückgesetzt werden muss,
failure.cmd
können sie zum Ausführen von benutzerdefinierten Vorgängen oder Rückgängigmachen von Aktionen früherer benutzerdefinierter Skripts verwendet werden. Wenn das Featureupdate erfolgreich ist, kann verwendet werden,success.cmd
um Featureupdateaktionen auszuführen.success.cmd
ist neu für Windows 10, Version 2004.
Benutzerdefinierte Aktionen werden während eines Featureupdates ausgeführt, das von Windows Setup installiert wird. Einige Windows-Funktionsupdates werden über ein monatliches Qualitätsupdate installiert und später über ein "Enablement-Paket", einen kleinen, schnell zu installierenden Master-Switch, aktiviert, der die Windows-Features aktiviert. Aktualisieren Sie z. B. von Windows 10, Version 2004 auf Windows 10, Version 20H2. Benutzerdefinierte Aktionen werden für Featureupdates, die über Aktivierungspakete installiert werden, nicht unterstützt.
Ordnerstruktur für benutzerdefinierte Aktionen
Benutzerdefinierte Aktionsskripts werden von Unterordnern ausgeführt %windir%\System32\update\
, je nachdem, ob Skripts für ein einzelnes Upgrade oder für alle zukünftigen Upgrades ausgeführt werden sollen. Windows Setup sucht automatisch nach diesen Skripts an den folgenden Speicherorten und führt sie aus, wenn sie vorhanden sind:
Ordner | Beschreibung |
---|---|
%windir%\System32\update\run | Windows Setup migriert Skripts in diesen Ordnern, sodass sie in zukünftigen Upgrades ausgeführt werden. |
%windir%\System32\update\runonce | Skripts in diesem Ordner werden nur in einem Upgrade ausgeführt und werden nicht für zukünftige Upgrades migriert. |
%windir%\System32\update\run\<GUID>%windir%\System32\update\runonce\<GUID> | Erstellen Sie eine eindeutige GUID, um jedes von Ihnen ausgeführte Skript eindeutig zu identifizieren. Verwenden Sie diese GUID, um einen Ordner innerhalb der run Ordner und runonce Ordner zu benennen. |
%windir%\System32\update\run\<GUID>\reflectdrivers%windir%\System32\update\runonce\<GUID>\reflectdrivers | Startkritische Treiber in diesem Ordner werden widergespiegelt. Stellen Sie sicher, dass der Ordner "Reflectdrivers" nur einen erforderlichen Satz von Verschlüsselungstreibern enthält. Wenn mehr Treiber als erforderlich erforderlich sind, können Sich auf Upgradeszenarien negativ auswirken. Weitere Informationen zu reflektierten Treibern finden Sie unter Gerätetreiber . |
Wenn eine Aktualisierung fehlschlägt oder zurückgesetzt werden muss, kann ein Skript failure.cmd verwendet werden, um benutzerdefinierte Operationen durchzuführen oder Aktionen früherer benutzerdefinierter Skripts rückgängig zu machen. Wenn die Skripte fehlschlagen, schlägt auch die Aktualisierung fehl.
Benutzerdefinierte Aktionsskriptspeicherorte und Beispiele
Skriptspeicherorte
Die folgende Tabelle zeigt die Ordnerpfadstruktur von Dateien zum Ausführen benutzerdefinierter Aktionen:
Ausführen (Skripts werden migriert) | Einmal ausführen (Skripts werden nicht migriert) |
---|---|
%windir%\System32\update\run\<GUID>\preinstall.cmd | %windir%\System32\update\runonce\<GUID>\preinstall.cmd |
%windir%\System32\update\run\<GUID>\precommit.cmd | %windir%\System32\update\runonce\<GUID>\precommit.cmd |
%windir%\System32\update\run\<GUID>\postuninstall.cmd | %windir%\System32\update\runonce\<GUID>\postuninstall.cmd |
%windir%\System32\update\run\<GUID>\success.cmd | %windir%\System32\update\runonce\<GUID>\success.cmd |
%windir%\System32\update\run\<GUID>\failure.cmd | %windir%\System32\update\runonce\<GUID>\failure.cmd |
%windir%\System32\update\run\<GUID>\reflectdrivers\example1.inf | %windir%\System32\update\runonce\<GUID>\reflectdrivers\example2.inf |
%windir%\System32\update\run\<GUID>\reflectdrivers\example1.sys | %windir%\System32\update\run\<GUID>\reflectdrivers\example2.sys |
Beispieldateipfade und -namen
Szenarien | Dateispeicherortbeispiele |
---|---|
Skriptbereitstellungsdaten | %windir%\system32\update\ |
Migrationsverzeichnisse | |
Skripts, die migriert werden | %windir%\system32\update\run\ |
Skripts, die nicht migriert werden | %windir%\system32\update\runonce\ |
Ordnerpfad mit einer GUID | %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\ |
Skriptnamen mit GUID | |
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\preinstall.cmd | |
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\precommit.cmd | |
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\postuninstall.cmd | |
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\failure.cmd | |
%windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\success.cmd | |
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\preinstall.cmd | |
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\precommit.cmd | |
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\postuninstall.cmd | |
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\failure.cmd | |
%windir%\system32\update\runonce\6971CB27-6F59-43CD-A764-969EE9BBCC1C\success.cmd | |
Ordner "Reflektierte Treiber" | %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\reflectdrivers\ |