Partager via


À propos des rapports Configuration Manager progression de l’action personnalisée

Pendant qu’une action personnalisée est en cours d’exécution sur un client Configuration Manager, elle peut signaler les informations de progression utilisées pour afficher un indicateur de progression.

Vous utilisez l’interface d’automatisation COM, IProgressUI::ShowActionProgress, pour signaler les informations de progression à l’environnement de séquence de tâches et afficher un indicateur de progression.

IProgressUI::ShowActionProgress est implémenté dans la classe COM, ProgressUI, qui est un objet COM hors processus dans TSProgressUI.exe.

ProgressUI dans l’environnement de séquence de tâches

Avant l’exécution de la séquence de tâches, ProgressUI est inscrit, puis, une fois la séquence de tâches terminée, elle est annulée. Dans le système d’exploitation source, ProgressUI s’exécute sous les informations d’identification de l’utilisateur connecté. Si aucun utilisateur n’est connecté lors de l’exécution de la séquence de tâches, l’inscription de l’objet COM échoue. Dans le système d’exploitation cible, et dans Windows PE, ProgressUI s’exécute sous le compte système.

Appel de IProgressUI::ShowActionProgress

Dans votre action personnalisée, vous devez effectuer les opérations suivantes pour signaler la progression de votre action personnalisée et afficher un indicateur de progression.

Remarque

En règle générale, vous devez signaler les informations de progression si l’action prend plus d’une minute à s’exécuter.

Détermination de l’affichage de l’indicateur de progression

À l’aide de la logique suivante, vous pouvez utiliser des variables d’environnement pour déterminer si l’indicateur de progression doit être affiché.

Si vous exécutez dans WindowsPE ( _SMSTSInWinPE == « true »), ou

Si vous exécutez le système d’exploitation complet après l’installation (_SMSTSReturnToGINA=="true »), ou

Si la séquence de tâches est démarrée à partir d’un média (_SMSTSLaunchMode est « CD », « DVD » ou « USB »), ou

Si la séquence de tâches s’exécute en mode autonome (_SMSTSStandAloneMode=="true »), ou

Si l’indicateur afficher l’interface utilisateur de progression est défini (_SMSTSShowProgressUI == « true »), l’indicateur de progression doit être affiché ; sinon, il ne doit pas être affiché.

Création de l’objet COM ProgressUI

Vous créez un ProgressUI objet à l’aide de la même technique que celle utilisée avec n’importe quel objet COM. En C++, vous utilisez CoCreateInstance. En C#, vous ajoutez une référence à l’interface utilisateur de progression du TSE SMS et, dans votre code source, vous créez une instance de la ProgressUILib.ProgressUIClass classe .

Dans VBScript, appelez CreateObject avec Microsoft.SMS. TsProgressUI.

Pour obtenir un exemple de création d’un objet COM dans VBSript et C#, consultez Utilisation des variables de séquence de tâches dans une séquence de tâches en cours d’exécution Configuration Manager.

Obtention des variables d’environnement requises

Plusieurs variables d’environnement contiennent des informations que vous devez passer à la IProgressUI::ShowActionProgress méthode . Par exemple, le nom de l’organisation nécessaire pour le pszOrgName paramètre est disponible à partir de la variable d’environnement , _SMSTSOrgName. Pour plus d’informations, consultez IProgressUI::ShowActionProgress. Pour plus d’informations sur la lecture des variables d’environnement de séquence de tâches, consultez How to Use Task Sequence Variables in a Running Configuration Manager Task Sequence.

Appel de IProgressUI::ShowActionProgress

Appelez IProgressUI::ShowActionProgress pour afficher l’indicateur de progression à l’aide des informations récupérées à partir des variables d’environnement. Pour passer la progression actuelle du pourcentage, utilisez les paramètres uActionExecStep et uActionExecMaxStep. Par exemple, si vous passez la valeur 2 dans uActionExecStep et que vous passez la valeur 10 dans uActionExecMaxStep, le pourcentage d’achèvement de l’action est de 20 %.

Voir aussi

IProgressUI::ShowActionProgressProgressUI