Partilhar via


Criação das ações personalizadas

A tabela abaixo lista as cinco ações personalizadas usadas para atender às especificações de exemplo: ProcessAccounts, UninstallAccounts, CreateAccounts, RemoveAccounts e RollbackAccounts. Todas essas ações personalizadas estão em bibliotecas de vínculo dinâmico armazenadas no Tabela Binária. O código-fonte C++ para as bibliotecas de vínculo dinâmico que contém as ações personalizadas de exemplo é fornecido no SDK do Windows Installer. ProcessAccounts e UninstallAccounts estão no arquivo Process.cpp. CreateAccount está no arquivo Create.cpp. RemoveAccount e RollbackAccount estão no arquivo Remove.cpp. Esses arquivos de origem podem ser usados para criar os arquivos Process.dll, Create.dlle Remove.dll.

Como a criação ou remoção de uma conta de usuário requer privilégios elevados, ações personalizadas de execução adiada executadas no contexto do sistema devem ser usadas para criar, remover ou reverter contas de usuário. As ações personalizadas de execução imediata, ProcessAccounts e UninstallAccounts, geram as ações personalizadas adiadas que criam, removem ou revertem contas de usuário: CreateAccount, RemoveAccount e RollbackAccount.

Como as ações personalizadas adiadas não podem ler informações em tabelas de banco de dados, ProcessAccounts e UninstallUserAccouts devem definir uma propriedade CustomActionData para passar as informações na tabela UserAccounts para as ações personalizadas adiadas, conforme descrito em Obtendo informações de contexto para ações personalizadas de execução adiada. Quando o instalador executa o script de execução, as ações personalizadas adiadas manipulam contas de usuário de acordo com as informações na propriedade CustomActionData.

Como todas as ações personalizadas estão em bibliotecas de vínculo dinâmico armazenadas na tabela Binary, todas elas incluem as constantes msidbCustomActionTypeDll e msidbCustomActionTypeBinaryData em seu tipo numérico base. ProcessAccounts e UninstallAccounts são exemplos de Ação Personalizada Tipo 1 pura . Para obter informações sobre outros tipos de ação personalizada, consulte a Lista de Resumo de Todos os Tipos de Ação Personalizada.

CreateAccount e RemoveAccount são ações personalizadas de execução diferida que não permitem que os serviços façam-se passar por usuários específicos. Essas ações personalizadas incluem as constantes msidbCustomActionTypeInScript e msidbCustomActionTypeNoImpersonate para especificar essas opções de execução in-script de ação personalizada.

RollbackAccount é uma ação personalizada de rollback () que remove apenas contas de utilizador durante uma instalação de rollback (). RollbackAccount inclui as constantes msidbCustomActionTypeInScript e msidbCustomActionTypeRollback para especificar essas opções de execução in-script de ação personalizada.

Essas ações personalizadas podem lidar com dados confidenciais, como senhas de usuário, que não devem ser gravadas no arquivo de log. As ações personalizadas adiadas devem, portanto, incluir msidbCustomActionTypeHideTarget no tipo de ação personalizada. Os nomes das ações personalizadas adiadas também precisam ser adicionados à lista de propriedades MsiHiddenProperties na tabela Property devido à maneira como ações personalizadas imediatas passam dados para ações personalizadas adiadas usando a propriedade CustomActionData.

Ação personalizada Ponto de entrada DLL Tipo de ação personalizada
ProcessAccounts ProcessUserAccounts em Process.dll. msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData = 1
DesinstalarContas UninstallUserAccounts no Process.dll. msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData = 1
Criar Conta CriarContaDeUtilizador em Create.dll. msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate + msidbCustomActionTypeHideTarget = 11265.
Remover Conta RemoverContaDeUtilizador em Remove.dll. msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeInScript + msidbCustomActionTypeNoImpersonate + msidbCustomActionTypeHideTarget = 11265.
RollbackAccount RemoverContaDeUtilizador em Remove.dll. msidbCustomActionTypeDll + msidbCustomActionTypeBinaryData + msidbCustomActionTypeInScript + msidbCustomActionTypeRollback + msidbCustomActionTypeHideTarget = 9473.

 

Continue para Criação da tabela CustomAction.