Acerca de los informes del progreso de la acción personalizada de Configuration Manager

Mientras se ejecuta una acción personalizada en un cliente de Configuration Manager, puede notificar información de progreso que se usa para mostrar un indicador de progreso.

Utilice la interfaz de automatización COM, IProgressUI::ShowActionProgress, para enviar la información de progreso al entorno de secuencia de tareas y para mostrar un indicador de progreso.

IProgressUI::ShowActionProgress se implementa en la clase COM, ProgressUI, que es un objeto COM fuera de proceso en TSProgressUI.exe.

ProgressUI en el entorno de secuencia de tareas

Antes de que se ejecute la secuencia de tareas, ProgressUI se registra y, a continuación, cuando finaliza la secuencia de tareas, se anula el registro. En el sistema operativo de origen, ProgressUI se ejecuta con las credenciales del usuario que inició sesión. Si ningún usuario ha iniciado sesión cuando se ejecuta la secuencia de tareas, se produce un error en el registro del objeto COM. En el sistema operativo de destino y en Windows PE, ProgressUI se ejecuta en la cuenta del sistema.

Llamar a IProgressUI::ShowActionProgress

En la acción personalizada, debe hacer lo siguiente para informar del progreso de la acción personalizada y mostrar un indicador de progreso.

Nota:

Normalmente, debe notificar la información de progreso si la acción tarda más de un minuto en ejecutarse.

Determinar si se debe mostrar el indicador de progreso

Usando la siguiente lógica, puedes usar variables de entorno para determinar si se debe mostrar el indicador de progreso.

Si está ejecutando en WindowsPE ( _SMSTSInWinPE == "true"), o

Si se ejecuta en versión completa del sistema operativo después de la instalación (_SMSTSReturnToGINA=="true"), o

Si la secuencia de tareas se inicia desde un medio (_SMSTSLaunchMode es "CD", "DVD" o "USB") o

Si la secuencia de tareas se ejecuta en modo autónomo (_SMSTSStandAloneMode=="true"), o

Si la marca de interfaz de usuario Mostrar progreso está establecida (_SMSTSShowProgressUI == "true"), se debe mostrar el indicador de progreso; de lo contrario, no se debe mostrar.

Creación del objeto ProgressUI de COM

Puede crear un ProgressUI objeto usando la misma técnica que se usa con cualquier objeto COM. En C++ usa CoCreateInstance. En C#, agregue una referencia a la interfaz de usuario de progreso de SMS TSE y, en el código fuente, creará una instancia de la ProgressUILib.ProgressUIClass clase.

En VBScript, llame CreateObject con Microsoft.SMS.TsProgressUI.

Para obtener un ejemplo de creación de un objeto COM en VBSript y C#, vea Cómo usar variables de secuencia de tareas en una secuencia de tareas de Configuration Manager en ejecución.

Obtención de las variables de entorno necesarias

Varias variables de entorno contienen información que debe pasar al IProgressUI::ShowActionProgress método. Por ejemplo, el nombre de la organización necesario para el pszOrgName parámetro está disponible en la variable de entorno, _SMSTSOrgName. Para obtener más información, consulte IProgressUI::ShowActionProgress. Para obtener información sobre cómo leer variables de entorno de secuencia de tareas, consulte Cómo usar variables de secuencia de tareas en una secuencia de tareas de Configuration Manager en ejecución.

Llamar a IProgressUI::ShowActionProgress

Llamada IProgressUI::ShowActionProgress para mostrar el indicador de progreso mediante la información que se recupera de las variables de entorno. Para pasar el porcentaje de progreso actual, use los parámetros uActionExecStep y uActionExecMaxStep. Por ejemplo, si pasa el valor 2 en uActionExecStep y pasa el valor 10 en uActionExecMaxStep, el porcentaje de finalización de la acción es del 20 por ciento.

Vea también

IProgressUI::ShowActionProgressProgressUI