Exécuter des actions personnalisées lors de la mise à jour des fonctionnalités

Vue d’ensemble

Les professionnels de l’informatique peuvent personnaliser une mise à jour de fonctionnalité en exécutant leurs propres scripts d’action personnalisés pendant et après une mise à jour des fonctionnalités. Les actions personnalisées sont disponibles à partir de Windows 10, version 1803.

Exécution d’actions personnalisées

À propos des actions personnalisées

Les actions personnalisées sont des scripts .cmd qui s’exécutent pendant le processus de mise à jour des fonctionnalités. Celles-ci peuvent être exécutées pendant quatre phases d’une mise à jour des fonctionnalités :

  1. Phase de préinstallation : cette phase correspond au démarrage du programme d’installation, mais aux vérifications de compatibilité préalables. Les actions au cours de cette phase sont spécifiées dans preinstall.cmd. Si les scripts échouent, la mise à jour des fonctionnalités échoue.
  2. Phase de pré-validation : cette phase est antérieure à l’application de la mise à jour des fonctionnalités et au redémarrage du système. Les actions au cours de cette phase sont spécifiées dans precommit.cmd. Si les scripts échouent, la mise à jour des fonctionnalités échoue.
  3. Phase post-désinstallation : cette phase se situe après qu’un utilisateur a lancé une désinstallation d’une mise à jour de fonctionnalité. Les actions au cours de cette phase sont spécifiées dans postuninstall.cmd. postuninstall.cmdest nouveau pour Windows 10, version 2004.
  4. Achèvement : cette phase se termine une fois l’installation terminée. Si la mise à jour des fonctionnalités échoue ou doit être restaurée, failure.cmd peut être utilisée pour effectuer des opérations personnalisées ou annuler des actions de scripts personnalisés précédents. Si la mise à jour des fonctionnalités réussit, success.cmd peut être utilisé pour effectuer des actions postérieures à la mise à jour des fonctionnalités. success.cmdest nouveau pour Windows 10, version 2004.

Les actions personnalisées s’exécutent lors d’une mise à jour des fonctionnalités installée par le programme d’installation de Windows. Certaines mises à jour des fonctionnalités Windows sont installées via une mise à jour qualité mensuelle, puis activées par le biais d’un « package d’activation », un petit « commutateur master » rapide à installer qui active les fonctionnalités Windows. Par exemple, la mise à jour de Windows 10, version 2004 vers Windows 10, version 20H2. Les actions personnalisées ne sont pas prises en charge pour les mises à jour de fonctionnalités installées via des packages d’activation.

Structure de dossiers d’actions personnalisées

Les scripts d’action personnalisés s’exécutent à partir de sous-dossiers dans %windir%\System32\update\, selon que vous souhaitez que les scripts s’exécutent pour une seule mise à niveau ou sur toutes les futures mises à niveau. Le programme d’installation de Windows recherche automatiquement ces scripts dans les emplacements suivants et les exécute s’ils sont présents :

Dossier Description
%windir%\System32\update\run Le programme d’installation de Windows migrera les scripts dans ces dossiers afin qu’ils soient exécutés dans les mises à niveau ultérieures.
%windir%\System32\update\runonce Les scripts de ce dossier ne s’exécutent qu’en une seule mise à niveau et ne seront pas migrés pour les mises à niveau ultérieures.
%windir%\System32\update\run\<GUID>

%windir%\System32\update\runonce\<GUID>
Créez un GUID unique pour identifier clairement chaque script que vous exécutez. Utilisez ce GUID pour nommer un dossier dans les run dossiers et runonce .
%windir%\System32\update\run\<GUID>\reflectdrivers

%windir%\System32\update\runonce\<GUID>\reflectdrivers
Les pilotes critiques de démarrage dans ce dossier sont répercutés. Vérifiez que le dossier reflectdrivers contient uniquement un ensemble nécessaire de pilotes de chiffrement. Avoir plus de pilotes que nécessaire peut avoir un impact négatif sur les scénarios de mise à niveau. Consultez Pilotes de périphérique pour en savoir plus sur les pilotes réfléchis.

Si une mise à jour échoue ou doit être restaurée, un script failure.cmd peut être utilisé pour effectuer des opérations personnalisées ou annuler des actions de scripts personnalisés précédents. Si les scripts échouent, la mise à jour échoue.

Emplacements et exemples de script d’action personnalisée

Emplacements de script

Le tableau suivant montre la structure du chemin d’accès aux dossiers des fichiers pour l’exécution d’actions personnalisées :

Exécuter (les scripts seront migrés) Exécuter une fois (les scripts ne seront pas migrés)
%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

Exemples de chemins d’accès et de noms de fichiers

Scénarios Exemples d’emplacement de fichier
Scripter les données de déploiement %windir%\system32\update\
Répertoires de migration
Scripts qui seront migrés %windir%\system32\update\run\
Scripts qui ne seront pas migrés %windir%\system32\update\runonce\
Chemin d’accès au dossier avec un GUID %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\
Noms de script avec 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
Dossier des pilotes répercutés %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\reflectdrivers\