Informationen zum Berichterstellungsstatus Configuration Manager benutzerdefinierten Aktionen
Während eine benutzerdefinierte Aktion auf einem Configuration Manager Client ausgeführt wird, kann sie Statusinformationen melden, die zum Anzeigen einer Statusanzeige verwendet werden.
Sie verwenden die COM-Automatisierungsschnittstelle IProgressUI::ShowActionProgress, um Statusinformationen an die Tasksequenzumgebung zu melden und eine Statusanzeige anzuzeigen.
IProgressUI::ShowActionProgress
wird in der COM-Klasse ProgressUI implementiert, bei der es sich um ein OUT-of-Process-COM-Objekt in TSProgressUI.exe handelt.
ProgressUI in der Tasksequenzumgebung
Bevor die Tasksequenz ausgeführt wird, ProgressUI
wird registriert, und nach Abschluss der Tasksequenz wird die Registrierung aufgehoben. Wird im Quellbetriebssystem ProgressUI
unter den Anmeldeinformationen des angemeldeten Benutzers ausgeführt. Wenn beim Ausführen der Tasksequenz kein Benutzer angemeldet ist, schlägt die Registrierung für das COM-Objekt fehl. Im Zielbetriebssystem und in Windows PE ProgressUI
wird unter dem Systemkonto ausgeführt.
Aufrufen von IProgressUI::ShowActionProgress
In Ihrer benutzerdefinierten Aktion müssen Sie die folgenden Schritte ausführen, um den Fortschritt Ihrer benutzerdefinierten Aktion zu melden und eine Statusanzeige anzuzeigen.
Hinweis
In der Regel sollten Sie Statusinformationen melden, wenn die Ausführung der Aktion länger als eine Minute dauert.
Bestimmen, ob die Statusanzeige angezeigt werden soll
Mithilfe der folgenden Logik können Sie Umgebungsvariablen verwenden, um zu bestimmen, ob die Statusanzeige angezeigt werden soll.
Wenn Sie in WindowsPE ( _SMSTSInWinPE
== "true") ausführen, oder
Wenn Sie nach der Installation im vollständigen Betriebssystem ausgeführt werden (_SMSTSReturnToGINA
=="true"), oder
Wenn die Tasksequenz von Einem Medium aus gestartet wird (_SMSTSLaunchMode
ist "CD", "DVD" oder "USB"), oder
Wenn die Tasksequenz im eigenständigen Modus ausgeführt wird (_SMSTSStandAloneMode
=="true"), oder
Wenn das Ui-Flag "Fortschritt anzeigen" festgelegt ist (_SMSTSShowProgressUI
== "true"), sollte die Statusanzeige angezeigt werden; andernfalls sollte sie nicht angezeigt werden.
Erstellen des COM ProgressUI-Objekts
Sie erstellen ein ProgressUI
-Objekt mit der gleichen Technik, die Sie mit jedem COM-Objekt verwenden. In C++ verwenden CoCreateInstance
Sie . In C# fügen Sie einen Verweis auf die SMS TSE-Statusbenutzeroberfläche hinzu, und in Ihrem Quellcode erstellen Sie eine Instanz der ProgressUILib.ProgressUIClass
-Klasse.
Rufen Sie in VBScript mit Microsoft.SMS auf CreateObject
. TsProgressUI.
Ein Beispiel zum Erstellen eines COM-Objekts in VBSript und C# finden Sie unter How to Use Task Sequence Variables in a Running Configuration Manager Task Sequence.
Abrufen der erforderlichen Umgebungsvariablen
Mehrere Umgebungsvariablen enthalten Informationen, die Sie an die IProgressUI::ShowActionProgress
-Methode übergeben müssen. Der Organisationsname, der für den pszOrgName
Parameter benötigt wird, ist beispielsweise in der Umgebungsvariablen _SMSTSOrgName
verfügbar. Weitere Informationen finden Sie unter IProgressUI::ShowActionProgress. Informationen zum Lesen von Tasksequenzumgebungsvariablen finden Sie unter Verwenden von Tasksequenzvariablen in einer ausgeführten Configuration Manager Tasksequenz.
Aufrufen von IProgressUI::ShowActionProgress
Rufen Sie auf IProgressUI::ShowActionProgress
, um die Statusanzeige mithilfe der Informationen anzuzeigen, die aus den Umgebungsvariablen abgerufen werden. Um den aktuellen Prozentualen Fortschritt zu übergeben, verwenden Sie die Parameter uActionExecStep
und uActionExecMaxStep
. Wenn Sie z. B. den Wert 2 in uActionExecStep
übergeben und den Wert 10 in uActionExecMaxStep
übergeben, beträgt der prozentsatzuelle Abschluss der Aktion 20 Prozent.