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 CoCreateInstance
u . 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.