Informazioni sulla creazione di report Stato dell'azione personalizzata di Configuration Manager

Mentre un'azione personalizzata è in esecuzione in un client di Configuration Manager, può segnalare informazioni sullo stato di avanzamento che vengono utilizzate per visualizzare un indicatore di stato.

Usare l'interfaccia di automazione COM, IProgressUI::ShowActionProgress, per segnalare le informazioni sullo stato di avanzamento all'ambiente della sequenza di attività e per visualizzare un indicatore di stato.

IProgressUI::ShowActionProgress è implementato nella classe COM, ProgressUI, che è un oggetto COM out-of-process in TSProgressUI.exe.

ProgressUI nell'ambiente della sequenza di attività

Prima dell'esecuzione della sequenza di attività, ProgressUI viene registrata e quindi, al termine della sequenza di attività, viene annullata la registrazione. Nel sistema operativo di origine, ProgressUI viene eseguito con le credenziali dell'utente connesso. Se nessun utente è connesso durante l'esecuzione della sequenza di attività, la registrazione per l'oggetto COM avrà esito negativo. Nel sistema operativo di destinazione e in Windows PE, ProgressUI viene eseguito con l'account di sistema.

Chiamata di IProgressUI::ShowActionProgress

Nell'azione personalizzata, è necessario eseguire le operazioni seguenti per segnalare lo stato di avanzamento dell'azione personalizzata e visualizzare un indicatore di stato.

Nota

In genere, è necessario segnalare le informazioni sullo stato di avanzamento se l'esecuzione dell'azione richiede più di un minuto.

determinare se l'indicatore di stato deve essere visualizzato

Usando la logica seguente, puoi usare le variabili di ambiente per determinare se l'indicatore di stato deve essere visualizzato.

Se si esegue in WindowsPE ( _SMSTSInWinPE == "true") o

Se si sta eseguendo nel sistema operativo completo dopo l'installazione (_SMSTSReturnToGINA=="true"), o

Se la sequenza di attività viene avviata da un supporto (_SMSTSLaunchMode è "CD", "DVD" o "USB") o

Se la sequenza di attività viene eseguita in modalità autonoma (_SMSTSStandAloneMode=="true") o

Se il flag dell'interfaccia utente di show progress è impostato (_SMSTSShowProgressUI == "true"), l'indicatore di stato deve essere visualizzato. In caso contrario, non deve essere visualizzato.

Creazione dell'oggetto COM ProgressUI

Per creare un ProgressUI oggetto è possibile utilizzare la stessa tecnica utilizzata per qualsiasi oggetto COM. In C++ si usa CoCreateInstance. In C# si aggiunge un riferimento a SMS TSE Progress UI e nel codice sorgente si crea un'istanza ProgressUILib.ProgressUIClass della classe.

In VBScript chiamare CreateObject con Microsoft.SMS.TsProgressUI.

Per un esempio di creazione di un oggetto COM in VBSript e C#, vedere Come usare le variabili della sequenza di attività in una sequenza di attività di Configuration Manager in esecuzione.

Ottenere le variabili di ambiente necessarie

Diverse variabili di ambiente contengono informazioni che è necessario passare al IProgressUI::ShowActionProgress metodo. Ad esempio, il nome dell'organizzazione necessario per il pszOrgName parametro è disponibile dalla variabile di ambiente. _SMSTSOrgName Per altre informazioni, vedere IProgressUI::ShowActionProgress. Per informazioni sulla lettura delle variabili di ambiente della sequenza di attività, vedere Come usare le variabili della sequenza di attività in una sequenza di attività di Configuration Manager in esecuzione.

Chiamata di IProgressUI::ShowActionProgress

Chiama IProgressUI::ShowActionProgress per mostrare l'indicatore di stato utilizzando le informazioni recuperate dalle variabili di ambiente. Per passare la percentuale di avanzamento corrente, utilizzate i parametri uActionExecStep e uActionExecMaxStep. Ad esempio, se si passa il valore 2 in uActionExecStep e si passa il valore 10 in uActionExecMaxStep, la percentuale di completamento dell'azione è del 20%.

Vedere anche

IProgressUI::ShowActionProgressProgressUI