Executar ações personalizadas durante a atualização de recursos

Visão geral

Os profissionais de TI podem personalizar uma atualização de recursos executando seus próprios scripts de ação personalizados durante e após uma atualização de recurso. Ações personalizadas estão disponíveis a partir do Windows 10, versão 1803.

Executando ações personalizadas

Sobre ações personalizadas

As ações personalizadas são scripts .cmd executados durante o processo de atualização de recursos. Eles podem ser executados durante quatro fases de uma atualização de recurso:

  1. Fase de pré-instalação: essa fase é quando a Instalação é iniciada, mas verificações de compatibilidade anteriores. As ações durante essa fase são especificadas em preinstall.cmd. Se os scripts falharem, a atualização de recursos falhará.
  2. Fase de pré-confirmação: essa fase é anterior à aplicação da atualização de recursos e à reinicialização do sistema. As ações durante essa fase são especificadas em precommit.cmd. Se os scripts falharem, a atualização de recursos falhará.
  3. Fase pós-desinstalação: essas fases ocorrem depois que um usuário inicia uma desinstalação de uma atualização de recurso. As ações durante essa fase são especificadas em postuninstall.cmd. postuninstall.cmdé novo para Windows 10, versão 2004.
  4. Conclusão: essa fase é após a conclusão da Instalação. Se a atualização de recursos falhar ou precisar ser revertida, failure.cmd poderá ser usado para executar operações personalizadas ou desfazer ações de scripts personalizados anteriores. Se a atualização de recurso for bem-sucedida, success.cmd poderá ser usada para executar ações de atualização de recurso pós-recurso. success.cmdé novo para Windows 10, versão 2004.

As ações personalizadas são executadas durante uma atualização de recurso instalada pela Instalação do Windows. Algumas atualizações de recursos do Windows são instaladas por meio de uma atualização de qualidade mensal e, posteriormente, ativadas por meio de um "pacote de habilitação", um pequeno e rápido "comutador de master" que ativa os recursos do Windows. Por exemplo, atualizando de Windows 10, versão 2004 para Windows 10, versão 20H2. Não há suporte para ações personalizadas para atualizações de recursos instaladas por meio de pacotes de habilitação.

Estrutura de pastas de ações personalizadas

Os scripts de ação personalizados são executados em subpastas no %windir%\System32\update\, dependendo se você deseja que os scripts sejam executados para uma única atualização ou em todas as atualizações futuras. A Instalação do Windows procura automaticamente esses scripts nos seguintes locais e os executará se eles estiverem presentes:

Pasta Descrição
%windir%\System32\update\run A Instalação do Windows migrará scripts nessas pastas para que sejam executados em atualizações futuras.
%windir%\System32\update\runonce Os scripts nessa pasta só serão executados em uma atualização e não serão migrados para atualizações futuras.
%windir%\System32\update\run\<GUID>

%windir%\System32\update\runonce\<GUID>
Crie um GUID exclusivo para identificar claramente cada script executado. Use esse GUID para nomear uma pasta dentro das run pastas e runonce .
%windir%\System32\update\run\<GUID>\reflectdrivers

%windir%\System32\update\runonce\<GUID>\reflectdrivers
Os drivers críticos de inicialização nesta pasta serão refletidos. Verifique se a pasta reflectdrivers contém apenas um conjunto necessário de drivers de criptografia. Ter mais drivers do que o necessário pode afetar negativamente os cenários de atualização. Confira Drivers de dispositivo para saber mais sobre drivers refletidos.

Se uma atualização falhar ou precisar ser revertida, um script failure.cmd poderá ser usado para executar operações personalizadas ou desfazer ações de scripts personalizados anteriores. Se os scripts falharem, a atualização falhará.

Exemplos e locais de script de ação personalizados

Locais de script

A tabela a seguir mostra a estrutura de caminho de pasta dos arquivos para executar ações personalizadas:

Executar (scripts serão migrados) Executar uma vez (os scripts não serão migrados)
%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

Exemplo de caminhos e nomes de arquivo

Cenários Exemplos de local do arquivo
Dados de implantação de script %windir%\system32\update\
Diretórios de migração
Scripts que serão migrados %windir%\system32\update\run\
Scripts que não serão migrados %windir%\system32\update\runonce\
Caminho da pasta com um GUID %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\
Nomes de script com 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
Pasta drivers refletidos %windir%\system32\update\run\6971CB27-6F59-43CD-A764-969EE9BBCC1C\reflectdrivers\