Выполнение пользовательских действий во время обновления компонентов

Общие сведения

ИТ-специалисты могут настроить обновление компонентов, запуская собственные скрипты настраиваемых действий во время и после обновления компонентов. Пользовательские действия доступны начиная с Windows 10 версии 1803.

Выполнение пользовательских действий

Сведения о настраиваемых действиях

Пользовательские действия — это cmd-скрипты, которые выполняются во время обновления компонентов. Они могут выполняться в течение четырех этапов обновления компонентов:

  1. Этап предварительной установки. На этом этапе запускается программа установки, но выполняется предварительная проверка совместимости. Действия на этом этапе указываются в preinstall.cmd. Если скрипты завершаются сбоем, обновление компонентов завершится ошибкой.
  2. Этап предварительной фиксации. Этот этап выполняется до применения обновления компонентов и перезагрузки системы. Действия на этом этапе указываются в precommit.cmd. Если скрипты завершаются сбоем, обновление компонентов завершится ошибкой.
  3. Этап после удаления. Этот этап выполняется после того, как пользователь инициирует удаление обновления компонентов. Действия на этом этапе указываются в postuninstall.cmd. postuninstall.cmdявляется новым для Windows 10 версии 2004.
  4. Завершение. Этот этап выполняется после завершения установки. Если обновление компонентов завершается сбоем или требуется откат, failure.cmd можно использовать для выполнения пользовательских операций или отмены действий предыдущих пользовательских скриптов. Если обновление компонентов выполнено успешно, success.cmd можно использовать для выполнения действий после обновления компонентов. success.cmdявляется новым для Windows 10 версии 2004.

Пользовательские действия выполняются во время обновления компонентов, установленного программой установки Windows. Некоторые обновления компонентов Windows устанавливаются с помощью ежемесячного обновления качества, а затем включаются с помощью "пакета включения", небольшого быстро устанавливаемого "коммутатора master", который активирует компоненты Windows. Например, обновление с Windows 10 версии 2004 до Windows 10 версии 20H2. Пользовательские действия не поддерживаются для обновлений компонентов, устанавливаемых с помощью пакетов включения.

Структура папок пользовательских действий

Скрипты настраиваемых действий выполняются из вложенных папок в %windir%\System32\update\в зависимости от того, нужно ли выполнять скрипты для одного обновления или для всех будущих обновлений. Программа установки Windows автоматически ищет эти скрипты в следующих расположениях и будет выполнять их, если они присутствуют:

Папка Описание
%windir%\System32\update\run Программа установки Windows перенесет скрипты в эти папки, чтобы они запускались в будущих обновлениях.
%windir%\System32\update\runonce Скрипты в этой папке будут выполняться только в одном обновлении и не будут перенесены для будущих обновлений.
%windir%\System32\update\run\<GUID>

%windir%\System32\update\runonce\<GUID>
Создайте уникальный GUID, чтобы четко идентифицировать каждый выполняемый скрипт. Используйте этот GUID для присвоения имени папке в папках run и runonce .
%windir%\System32\update\run\<GUID>\reflectdrivers

%windir%\System32\update\runonce\<GUID>\reflectdrivers
Будут отражены драйверы, критически важные для загрузки, в этой папке. Убедитесь, что папка reflectdrivers содержит только необходимый набор драйверов шифрования. Наличие большего числа драйверов может негативно повлиять на сценарии обновления. Дополнительные сведения о отраженных драйверах см. в разделе Драйверы устройств .

Если обновление завершается сбоем или требуется выполнить откат, можно использовать скрипт failure.cmd для выполнения пользовательских операций или отмены действий предыдущих пользовательских скриптов. Если скрипты завершаются сбоем, обновление завершится ошибкой.

Расположения и примеры скриптов настраиваемых действий

Расположения скриптов

В следующей таблице показана структура пути к папкам файлов для выполнения пользовательских действий.

Выполнить (скрипты будут перенесены) Выполнить один раз (скрипты не переносятся)
%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

Примеры путей и имен файлов

Сценарии Примеры расположения файлов
Данные развертывания скрипта %windir%\system32\update\
Каталоги миграции
Скрипты, которые будут перенесены %windir%\system32\update\run\
Скрипты, которые не будут перенесены %windir%\system32\update\runonce\
Путь к папке с GUID %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\
Имена скриптов с 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
Папка отраженных драйверов %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\reflectdrivers\