Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Enquanto uma ação personalizada está em execução em um cliente do Configuration Manager, ela pode relatar informações de progresso que são usadas para exibir um indicador de progresso.
Use a interface de automação COM, IProgressUI::ShowActionProgress, para relatar informações de andamento para o 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 da execução da sequência de tarefas, é registrado e, ProgressUI em seguida, quando a sequência de tarefas termina, ela tem o registro cancelado. No sistema operacional de origem, ProgressUI é executado com as credenciais de usuário conectado. Se nenhum usuário estiver conectado quando a sequência de tarefas for executada, o registro do objeto COM falhará. No sistema operacional de destino e no Windows PE, ProgressUI é executado na conta do sistema.
Chamando IProgressUI::ShowActionProgress
Na ação personalizada, você deve fazer o seguinte para relatar o progresso da ação personalizada e exibir um indicador de progresso.
Observação
Normalmente, você deve relatar informações de andamento se a ação demorar mais de um minuto para ser executada.
Determinar se o indicador de progresso deve ser exibido
Usando a lógica a seguir, é possível usar variáveis de ambiente para determinar se o indicador de progresso deve ser exibido.
Se você estiver executando no WindowsPE ( _SMSTSInWinPE == "true") ou
Se você estiver executando em sistema operacional completo após a instalação (_SMSTSReturnToGINA=="true"), ou
Se a sequência de tarefas for iniciada a partir da mídia (_SMSTSLaunchMode é "CD", "DVD" ou "USB"), ou
Se a sequência de tarefas estiver sendo executada no modo autônomo (_SMSTSStandAloneMode=="true") ou
Se o sinalizador show progress UI estiver definido (_SMSTSShowProgressUI == "true"), o indicador de progresso deverá ser exibido; caso contrário, ele não deverá ser exibido.
Criando o objeto COM ProgressUI
Você cria um ProgressUI objeto usando a mesma técnica que usa com qualquer objeto COM. Em C++, você usa CoCreateInstance. Em C#, você adiciona uma referência à interface do usuário do SMS TSE Progress e, em seu código-fonte, cria uma instância da ProgressUILib.ProgressUIClass classe.
No VBScript, ligue CreateObject com Microsoft.SMS.TsProgressUI.
Para obter um exemplo de criação de um objeto COM em VBSript e C#, consulte Como usar variáveis de sequência de tarefas em uma sequência de tarefas do Configuration Manager em execução.
Obtendo as variáveis de ambiente necessárias
Várias variáveis de ambiente contêm informações que você deve passar para o IProgressUI::ShowActionProgress método. Por exemplo, o nome da organização necessário para o pszOrgName parâmetro está disponível na variável de ambiente, _SMSTSOrgName. Para obter mais informações, consulte IProgressUI::ShowActionProgress. Para obter informações sobre como ler variáveis de ambiente de sequência de tarefas, consulte Como usar variáveis de sequência de tarefas em uma sequência de tarefas do Configuration Manager em execução.
Chamando IProgressUI::ShowActionProgress
Chamada IProgressUI::ShowActionProgress para mostrar o indicador de progresso usando as informações recuperadas das variáveis de ambiente. Para passar o progresso percentual atual, use os parâmetros uActionExecStep e uActionExecMaxStep. Por exemplo, se você passar o valor 2 em uActionExecStep e passar o valor 10 em uActionExecMaxStep, a porcentagem de conclusão da ação será de 20%.