Partilhar via


Sobre reporting Configuration Manager Custom Action Progress

Enquanto uma ação personalizada está a ser executada num cliente Do Gestor de Configuração, pode reportar informações de progresso que são usadas para exibir um indicador de progresso.

Utiliza a interface de automatização COM, IProgressUI::ShowActionProgress,para reportar informações de progresso para o ambiente de sequência de tarefas e para mostrar um indicador de progresso.

IProgressUI::ShowActionProgress é implementado na classe COM, ProgressUI,que é um objeto COM fora do processo em TSProgressUI.exe.

ProgressUI no Ambiente da Sequência de Tarefas

Antes da sequência de tarefas ser ProgressUI registada, é registada e, quando a sequência de tarefas termina, não está registada. No sistema operativo de origem, ProgressUI funciona sob as credenciais de utilizador iniciadas. Se nenhum utilizador tiver iniciado sessão quando a sequência de tarefas for executado, o registo do objeto COM falha. No sistema operativo-alvo, e em Windows PE, ProgressUI funciona sob a conta do sistema.

Chamando iProgressUI::ShowActionProgress

Na sua ação personalizada deve fazer o seguinte para relatar o progresso da sua ação personalizada e apresentar um indicador de progresso.

Nota

Normalmente, deve reportar informações de progresso se a ação demorar mais de um minuto a ser executada.

Determinar se o indicador de progresso deve ser exibido

Utilizando a seguinte lógica, pode utilizar variáveis ambientais para determinar se o indicador de progresso deve ser apresentado.

Se estiver a correr no WindowsPE _SMSTSInWinPE (== "verdadeiro"), ou

Se estiver a funcionar em instalação de posts do sistema operativo completo _SMSTSReturnToGINA (=="true"), ou

Se a sequência de tarefas for iniciada a partir de meios _SMSTSLaunchMode (é "CD", "DVD" ou "USB"), ou

Se a sequência de tarefa estiver a funcionar em modo autónomo _SMSTSStandAloneMode (=="verdadeiro"), ou

Se a bandeira de UI do progresso da mostra estiver definida _SMSTSShowProgressUI (== "verdadeira"), o indicador de progresso deve ser apresentado; caso contrário, não deve ser exibido.

Criação do Objeto COM ProgressUI

Cria-se um ProgressUI objeto utilizando a mesma técnica que utiliza com qualquer objeto COM. Em C++ CoCreateInstance utiliza-se. Em C# você adiciona uma referência a SMS TSE Progress UI, e no seu código fonte cria uma instância da ProgressUILib.ProgressUIClass classe.

No VBScript, ligue CreateObject para microsoft.SMS.TsProgressUI.

Para um exemplo de criação de um objeto COM em VBSript e C#, consulte como utilizar variáveis de sequência de tarefas numa sequência de tarefas do gestor de configuração em execução.

Obtenção das Variáveis Ambientais Necessárias

Várias variáveis ambientais contêm informações que deve passar para o IProgressUI::ShowActionProgress método. Por exemplo, o nome da organização que é necessário para o pszOrgName parâmetro está disponível a partir da variável ambiental, _SMSTSOrgName . Para mais informações, consulte iProgressUI::ShowActionProgress. Para obter informações sobre variáveis de ambiente de sequência de tarefas de leitura, consulte como utilizar variáveis de sequência de tarefas numa sequência de tarefas do gestor de configuração de execução.

Chamando iProgressUI::ShowActionProgress

Chamada IProgressUI::ShowActionProgress para mostrar o indicador de progresso utilizando a informação que é recuperada das variáveis ambientais. Para passar a percentagem atual de progresso, usa os parâmetros uActionExecStep e uActionExecMaxStep . Por exemplo, se passar o valor 2 uActionExecStep e passar o valor 10 em , uActionExecMaxStep então a percentagem de conclusão da ação é de 20 por cento.

Ver também

IProgressUI::ShowActionProgress ProgressUI