Informacje o raportowaniu postępu akcji niestandardowej programu Configuration Manager

Gdy na kliencie programu Configuration Manager jest uruchomiona akcja niestandardowa, może raportować informacje o postępie służące do wyświetlania wskaźnika postępu.

Interfejs automatyzacji COM, IProgressUI::ShowActionProgress, służy do raportowania informacji o postępie do środowiska sekwencji zadań i wyświetlania wskaźnika postępu.

IProgressUI::ShowActionProgress jest implementowany w klasie COM ProgressUI, która jest obiektem COM poza procesem w TSProgressUI.exe.

Interfejs ProgressUI w środowisku sekwencji zadań

Przed uruchomieniem sekwencji zadań jest rejestrowana, ProgressUI a następnie, po zakończeniu sekwencji zadań, jest wyrejestrowywana. W źródłowym systemie ProgressUI operacyjnym działa na podstawie poświadczeń zalogowanego użytkownika. Jeśli podczas uruchamiania sekwencji zadań nie jest zalogowany żaden użytkownik, rejestracja obiektu COM kończy się niepowodzeniem. W docelowym systemie operacyjnym i środowisku Windows PE ProgressUI działa w ramach konta systemowego.

Wywoływanie IProgressUI::ShowActionProgress

W akcji niestandardowej musisz wykonać następujące czynności, aby raportować postęp tej czynności i wyświetlać wskaźnik postępu.

Uwaga

Zazwyczaj informacje o postępie należy zgłaszać, jeśli uruchomienie akcji trwa dłużej niż minutę.

Określanie, czy powinien być wyświetlany wskaźnik postępu

Korzystając z następującej logiki, możesz użyć zmiennych środowiskowych, aby określić, czy wskaźnik postępu powinien być wyświetlany.

Jeśli korzystasz ze środowiska WindowsPE ( _SMSTSInWinPE == "true") lub

Jeśli po instalacji używasz pełnego systemu operacyjnego (_SMSTSReturnToGINA=="true") lub

Jeśli sekwencja zadań jest uruchamiana z nośnika (_SMSTSLaunchMode jest "CD", "DVD" lub "USB") lub

Jeśli sekwencja zadań jest uruchomiona w trybie autonomicznym (_SMSTSStandAloneMode=="true") lub

Jeśli ustawiono flagę interfejsu użytkownika pokaż postęp (_SMSTSShowProgressUI == "true"), wskaźnik postępu powinien być wyświetlany; w przeciwnym razie nie powinien być wyświetlany.

Tworzenie obiektu COM ProgressUI

ProgressUI Obiekt tworzy się przy użyciu tej samej techniki, którą stosuje się w przypadku każdego obiektu COM. W języku C++ używany jest CoCreateInstance. W języku C# dodasz odwołanie do interfejsu użytkownika postępu TSE usługi SMS, a w kodzie źródłowym utworzysz wystąpienie ProgressUILib.ProgressUIClass klasy.

W języku VBScript wywołaj połączenie CreateObject z Microsoft.SMS.TsProgressUI.

Aby zapoznać się z przykładem tworzenia obiektu COM w VBSript i języku C#, zobacz Jak używać zmiennych sekwencji zadań w uruchomionej sekwencji zadań programu Configuration Manager.

Pobieranie wymaganych zmiennych środowiskowych

Kilka zmiennych środowiskowych zawiera informacje, które należy przekazać do IProgressUI::ShowActionProgress metody. Na przykład nazwa organizacji, która jest potrzebna pszOrgName dla parametru, _SMSTSOrgNamejest dostępna z poziomu zmiennej środowiskowej . Aby uzyskać więcej informacji, zobacz IProgressUI::ShowActionProgress. Aby uzyskać informacje na temat odczytywania zmiennych środowiskowych sekwencji zadań, zobacz Jak używać zmiennych sekwencji zadań w uruchomionej sekwencji zadań programu Configuration Manager.

Wywoływanie IProgressUI::ShowActionProgress

Wywołaj IProgressUI::ShowActionProgress , aby wyświetlić wskaźnik postępu przy użyciu informacji pobieranych ze zmiennych środowiskowych. Aby przekazać bieżącą wartość procentową postępu, należy użyć parametrów uActionExecStep i uActionExecMaxStep. Na przykład w przypadku przekazania wartości 2 in uActionExecStep i wartości 10 w uActionExecMaxStepprogramie wartość procentowa wykonania akcji wynosi 20 procent.

Zobacz też

IProgressUI::ShowActionProgressProgressUI