Delen via


Over het rapporteren Configuration Manager voortgang van aangepaste actie

Terwijl een aangepaste actie wordt uitgevoerd op een Configuration Manager-client, kan deze voortgangsinformatie rapporteren die wordt gebruikt om een voortgangsindicator weer te geven.

U gebruikt de COM automation-interface , IProgressUI::ShowActionProgress, om voortgangsinformatie te rapporteren aan de takenreeksomgeving en om een voortgangsindicator weer te geven.

IProgressUI::ShowActionProgress is geïmplementeerd in de COM-klasse ProgressUI. Dit is een niet-verwerkt COM-object in TSProgressUI.exe.

ProgressUI in de takenreeksomgeving

Voordat de takenreeks wordt uitgevoerd, ProgressUI wordt geregistreerd en vervolgens, wanneer de takenreeks is voltooid, wordt de registratie ongedaan gemaakt. In het bronbesturingssysteem ProgressUI wordt uitgevoerd onder de aangemelde gebruikersreferenties. Als er geen gebruiker is aangemeld wanneer de takenreeks wordt uitgevoerd, mislukt de registratie voor het COM-object. In het doelbesturingssysteem en in Windows PE wordt ProgressUI uitgevoerd onder het systeemaccount.

IProgressUI aanroepen::ShowActionProgress

In uw aangepaste actie moet u het volgende doen om de voortgang van uw aangepaste actie te rapporteren en een voortgangsindicator weer te geven.

Opmerking

Normaal gesproken moet u voortgangsgegevens rapporteren als de actie meer dan één minuut duurt.

Bepalen of de voortgangsindicator moet worden weergegeven

Met behulp van de volgende logica kunt u omgevingsvariabelen gebruiken om te bepalen of de voortgangsindicator moet worden weergegeven.

Als u werkt in WindowsPE ( _SMSTSInWinPE == "true"), of

Als u na de installatie (_SMSTSReturnToGINA=="true") in het volledige besturingssysteem werkt, of

Als de takenreeks wordt gestart vanaf media (_SMSTSLaunchMode is 'CD', 'DVD' of 'USB'), of

Als de takenreeks wordt uitgevoerd in de zelfstandige modus (_SMSTSStandAloneMode=="true"), of

Als de vlag voortgang van de gebruikersinterface voor weergeven is ingesteld (_SMSTSShowProgressUI == "true"), moet de voortgangsindicator worden weergegeven. Anders moet deze niet worden weergegeven.

Het COM ProgressUI-object maken

U maakt een ProgressUI object met behulp van dezelfde techniek die u met elk COM-object gebruikt. In C++ gebruikt CoCreateInstanceu . In C# voegt u een verwijzing toe naar de gebruikersinterface van SMS TSE Progress en in uw broncode maakt u een exemplaar van de ProgressUILib.ProgressUIClass klasse.

Roep in VBScript CreateObject aan met Microsoft.SMS. TsProgressUI.

Zie Takenreeksvariabelen gebruiken in een actieve Configuration Manager takenreeks voor een voorbeeld van het maken van een COM-object in VBSript en C#.

De vereiste omgevingsvariabelen ophalen

Verschillende omgevingsvariabelen bevatten informatie die u moet doorgeven aan de IProgressUI::ShowActionProgress methode. De naam van de organisatie die nodig is voor de pszOrgName parameter is bijvoorbeeld beschikbaar in de omgevingsvariabele, _SMSTSOrgName. Zie IProgressUI::ShowActionProgress voor meer informatie. Zie Takenreeksvariabelen gebruiken in een actieve Configuration Manager takenreeks voor informatie over het lezen van omgevingsvariabelen voor takenreeksen.

IProgressUI aanroepen::ShowActionProgress

Roep IProgressUI::ShowActionProgress aan om de voortgangsindicator weer te geven met behulp van de informatie die wordt opgehaald uit de omgevingsvariabelen. Als u de huidige voortgangspercentage wilt doorgeven, gebruikt u de parameters uActionExecStep en uActionExecMaxStep. Als u bijvoorbeeld de waarde 2 in uActionExecStep doorgeeft en de waarde 10 doorgeeft in uActionExecMaxStep, is het voltooiingspercentage van de actie 20 procent.

Zie ook

IProgressUI::ShowActionProgressProgressUI