Cómo enumerar los pasos de una secuencia de tareas de implementación del sistema operativo
Enumera una secuencia de tareas de implementación del sistema operativo, en Configuration Manager, mediante un método recursivo para examinar los pasos y grupos de la secuencia de tareas.
Para enumerar los pasos de una secuencia de tareas
Configure una conexión con el proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.
Obtenga una secuencia de tareas válida SMS_TaskSequence objeto. Para obtener más información, vea How to Create an Operating System Deployment Task Sequence (Cómo crear una secuencia de tareas de implementación del sistema operativo).
Enumere los pasos para mostrar los nombres de acción (SMS_TaskSequence_Action). Use la recursividad para acceder a los grupos (SMS_TaskSequence_Group) que se encuentran y mostrar sus acciones.
Ejemplo
En el ejemplo siguiente se muestran las acciones y los grupos dentro de una secuencia de tareas.
Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de Configuration Manager.
Sub RecurseTaskSequenceSteps(taskSequence, indent)
Dim osdStep
Dim i
' Indent each new group.
for each osdStep in taskSequence.Steps
for i=0 to indent
WScript.StdOut.Write " "
next
If osdStep.SystemProperties_("__CLASS")="SMS_TaskSequence_Group" Then
wscript.StdOut.Write "Group: "
End If
WScript.Echo osdStep.Name
' Recurse into each group found.
If osdStep.SystemProperties_("__CLASS")="SMS_TaskSequence_Group" Then
If IsNull(osdStep.Steps) Then
Wscript.Echo "No steps"
Else
Call RecurseTaskSequenceSteps (osdStep, indent+3)
End If
End If
Next
End Sub
public void RecurseTaskSequenceSteps(
IResultObject taskSequence,
int indent)
{
try
{
// The array of SMS_TaskSequence_Steps.
List<IResultObject> steps = taskSequence.GetArrayItems("Steps");
foreach (IResultObject ro in steps)
{
for (int i = 0; i < indent; i++)
{
Console.Write(" ");
}
if (ro["__CLASS"].StringValue == "SMS_TaskSequence_Group")
{
Console.Write("Group: ");
}
Console.WriteLine(ro["Name"].StringValue);
// Child groups that are found. Use recursion to view them.
if (ro["__CLASS"].StringValue == "SMS_TaskSequence_Group")
{
this.RecurseTaskSequenceSteps(ro, indent + 3);
}
}
}
catch (SmsException e)
{
Console.WriteLine("Failed To enumerate task sequence items: " + e.Message);
throw;
}
}
El método de ejemplo tiene los parámetros siguientes:
Parámetro | Tipo | Descripción |
---|---|---|
taskSequence |
-Administrado: IResultObject - VBScript: SWbemObject |
Secuencia de tareas válida (SMS_TaskSequence ). El grupo se agrega a esta secuencia de tareas. |
indent |
-Administrado: Integer -Vbscript: Integer |
La sangría se usa para espaciado la salida de la consola para grupos secundarios. |
Compilar el código
Este ejemplo de C# requiere:
Espacios de nombres
System
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Ensamblado
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programación sólida
Para obtener más información sobre el control de errores, consulte Acerca de los errores de Configuration Manager.
Seguridad de .NET Framework
Para obtener más información sobre la protección de aplicaciones Configuration Manager, consulte Configuration Manager administración basada en roles.
Consulta también
Introducción a los objetosCómo agregar una acción de secuencia de tareas de implementación del sistema operativo
Conexión a un proveedor de SMS en Configuration Manager mediante código administrado
Conexión a un proveedor de SMS en Configuration Manager mediante WMI
Introducción a la secuencia de tareas
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de