Teilen über


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 CoCreateInstanceSie . 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 _SMSTSOrgNameverfü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.

Siehe auch

IProgressUI::ShowActionProgressProgressUI