Compartilhar via


Acerca dos Relatórios Configuration Manager Progresso da Ação Personalizada

Enquanto uma ação personalizada está em execução num cliente Configuration Manager, pode comunicar informações de progresso que são utilizadas para apresentar um indicador de progresso.

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

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

ProgressUI no Ambiente de Sequência de Tarefas

Antes de a sequência de tarefas ser executada, ProgressUI é registada e, em seguida, quando a sequência de tarefas é concluída, é anulado o registo. No sistema operativo de origem, ProgressUI é executado sob as credenciais de utilizador com sessão iniciada. Se nenhum utilizador tiver sessão iniciada quando a sequência de tarefas for executada, o registo do objeto COM falhará. No sistema operativo de destino e no Windows PE, ProgressUI é executado na conta do sistema.

Chamar IProgressUI::ShowActionProgress

Na sua ação personalizada, tem de fazer o seguinte para comunicar o progresso da ação personalizada e apresentar um indicador de progresso.

Observação

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

Determinar se o Indicador de Progresso Deve Ser Apresentado

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

Se estiver a executar no WindowsPE ( _SMSTSInWinPE == "verdadeiro" ou

Se estiver a executar na instalação pós-instalação completa do sistema operativo (_SMSTSReturnToGINA=="verdadeiro"), ou

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

Se a sequência de tarefas estiver em execução no modo autónomo (_SMSTSStandAloneMode=="verdadeiro"), ou

Se o sinalizador mostrar progresso da IU estiver definido (_SMSTSShowProgressUI == "verdadeiro"), o indicador de progresso deve ser apresentado; caso contrário, não deve ser apresentado.

Creating the COM ProgressUI Object

Pode criar um ProgressUI objeto com a mesma técnica que utiliza com qualquer objeto COM. Em C++ utiliza CoCreateInstance. Em C#, adiciona uma referência à IU de Progresso do TSE de SMS e, no código fonte, cria uma instância da ProgressUILib.ProgressUIClass classe .

No VBScript, chame CreateObject com Microsoft.SMS.TsProgressUI.

Para obter um exemplo de criação de um objeto COM em VBSript e C#, veja How to Use Task Sequence Variables in a Running Configuration Manager Task Sequence (Como Utilizar Variáveis de Sequência de Tarefas numa Sequência de Tarefas Configuration Manager Em Execução).

Obter as Variáveis de Ambiente Necessárias

Várias variáveis de ambiente contêm informações que tem de transmitir para o IProgressUI::ShowActionProgress método . Por exemplo, o nome da organização necessário para o pszOrgName parâmetro está disponível a partir da variável de ambiente , _SMSTSOrgName. Para obter mais informações, veja IProgressUI::ShowActionProgress. Para obter informações sobre a leitura de variáveis de ambiente de sequência de tarefas, veja How to Use Task Sequence Variables in a Running Configuration Manager Task Sequence (Como Utilizar Variáveis de Sequência de Tarefas numa Sequência de Tarefas em Execução Configuration Manager).

Chamar IProgressUI::ShowActionProgress

Chame IProgressUI::ShowActionProgress para mostrar o indicador de progresso com as informações obtidas das variáveis de ambiente. Para transmitir o progresso da percentagem atual, utilize os parâmetros uActionExecStep e uActionExecMaxStep. Por exemplo, se transmitir o valor 2 em uActionExecStep e passar o valor 10 em uActionExecMaxStep, a percentagem de conclusão da ação será de 20%.

Confira também

IProgressUI::ShowActionProgressProgressUI