Om rapportering av anpassade åtgärder i Configuration Manager

När en anpassad åtgärd körs på en Configuration Manager klient kan den rapportera förloppsinformation som används för att visa en förloppsindikator.

Du använder COM-automatiseringsgränssnittet, IProgressUI::ShowActionProgress, för att rapportera förloppsinformation till aktivitetssekvensmiljön och för att visa en förloppsindikator.

IProgressUI::ShowActionProgress implementeras i COM-klassen, ProgressUI, som är ett COM-objekt utanför processen i TSProgressUI.exe.

ProgressUI i aktivitetssekvensmiljön

Innan aktivitetssekvensen körs ProgressUI registreras den och sedan, när aktivitetssekvensen är klar, avregistreras den. I källoperativsystemet körs ProgressUI den med de inloggade användarreferenserna. Om ingen användare är inloggad när aktivitetssekvensen körs misslyckas registreringen för COM-objektet. I måloperativsystemet och i Windows PE ProgressUI körs under systemkontot.

Anropa IProgressUI::ShowActionProgress

I din anpassade åtgärd måste du göra följande för att rapportera förloppet för din anpassade åtgärd och visa en förloppsindikator.

Obs!

Vanligtvis bör du rapportera förloppsinformation om åtgärden tar mer än en minut att köra.

Avgöra om förloppsindikatorn ska visas

Med hjälp av följande logik kan du använda miljövariabler för att avgöra om förloppsindikatorn ska visas.

Om du kör i WindowsPE ( _SMSTSInWinPE == "true") eller

Om du kör i det fullständiga operativsystemet efter installationen (_SMSTSReturnToGINA=="true") eller

Om aktivitetssekvensen startas från media (_SMSTSLaunchMode är "CD", "DVD" eller "USB"), eller

Om aktivitetssekvensen körs i fristående läge (_SMSTSStandAloneMode=="true") eller

Om UI-flaggan för visa förlopp är inställd (_SMSTSShowProgressUI == "true") ska förloppsindikatorn visas. Annars ska den inte visas.

Skapa COM ProgressUI-objektet

Du skapar ett ProgressUI objekt med samma teknik som för andra COM-objekt. I C++ använder CoCreateInstancedu . I C# lägger du till en referens till SMS TSE Progress UI och i källkoden skapar du en instans av ProgressUILib.ProgressUIClass klassen.

I VBScript anropar du CreateObjectmed Microsoft.SMS.TsProgressUI.

Ett exempel på hur du skapar ett COM-objekt i VBSript och C# finns i Så här använder du aktivitetssekvensvariabler i en pågående Configuration Manager aktivitetssekvens.

Hämta de miljövariabler som krävs

Flera miljövariabler innehåller information som du måste skicka till IProgressUI::ShowActionProgress metoden. Till exempel är organisationsnamnet som behövs för pszOrgName parametern tillgängligt från miljövariabeln, _SMSTSOrgName. Mer information finns i IProgressUI::ShowActionProgress. Information om hur du läser miljövariabler för aktivitetssekvens finns i Så här använder du aktivitetssekvensvariabler i en aktivitetssekvens som körs av Configuration Manager.

Anropa IProgressUI::ShowActionProgress

Anrop IProgressUI::ShowActionProgress för att visa förloppsindikatorn med hjälp av informationen som hämtas från miljövariablerna. För att klara det aktuella procentuella förloppet använder du parametrarna uActionExecStep och uActionExecMaxStep. Om du till exempel skickar värdet 2 in uActionExecStep och skickar värdet 10 in uActionExecMaxStepär åtgärdens slutförandeprocent 20 procent.

Se även

IProgressUI::ShowActionProgressProgressUI