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.