Procedimiento para eliminar una acción de secuencia de tareas de implementación del sistema operativo
Elimine una acción de secuencia de tareas de implementación del sistema operativo, en Configuration Manager, quitando la acción de los pasos de secuencia de tareas.
Para eliminar una acción de 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 un objeto de secuencia de tareas (SMS_TaskSequence). 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).
Quite la acción de la
SMS_TaskSequence.Steps
propiedad de matriz.
Ejemplo
El siguiente método de ejemplo elimina una acción de la secuencia de tareas. La acción se identifica como una acción comprobando la propiedad Instrumental de administración de Windows (WMI) __SUPERCLASS para asegurarse de que se deriva de SMS_TaskSequenceAction.
Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de Configuration Manager.
Sub RemoveAction (connection, taskSequence, actionName)
Dim i
Dim newArray
Dim actionStep
If taskSequence.SystemProperties_("__CLASS")<>"SMS_TaskSequence" Then
wscript.echo "Not a task sequence"
Exit Sub
End If
if IsNull(taskSequence.Steps) Then
Wscript.Echo "No steps"
Exit Sub
End If
' Create an array to hold copied steps.
newArray = Array(taskSequence.Steps)
ReDim newArray(UBound(taskSequence.Steps))
' Copy the steps into the array and remove the matching action.
i=0
for each actionStep in taskSequence.Steps
If actionStep.Name = actionName and _
actionStep.SystemProperties_("__SUPERCLASS") = "SMS_TaskSequence_Action" Then
ReDim preserve newArray(UBound(newArray)-1) ' shrink the Array
else
Set newArray(i)=actionStep ' copy it
i=i+1
End If
Next
' Assign new array back to the task sequence.
taskSequence.Steps=newArray
End Sub
public void RemoveAction(
IResultObject taskSequence,
string actionName)
{
try
{
// Get a list of steps.
List<IResultObject> actionSteps = taskSequence.GetArrayItems("Steps");
// Find the action to be deleted.
foreach (IResultObject actionStep in actionSteps)
{
if (actionStep["Name"].StringValue == actionName && actionStep["__SUPERCLASS"].StringValue == "SMS_TaskSequence_Action")
{
// Delete the action.
actionSteps.Remove(actionStep);
break;
}
}
// Update the task sequence.
taskSequence.SetArrayItems("Steps", actionSteps);
}
catch (Exception e)
{
Console.WriteLine("Failed to remove action: " + e.Message);
throw;
}
}
El método de ejemplo tiene los parámetros siguientes:
Parámetro | Tipo | Descripción |
---|---|---|
Connection |
-Administrado:WqlConnectionManager - VBScript: SWbemServices |
Una conexión válida al proveedor de SMS. |
taskSequence |
-Administrado: IResultObject - VBScript: SWbemObject |
Secuencia de tareas que contiene la acción que se va a eliminar. |
actionName |
-Administrado: String -Vbscript: String |
Nombre de la acción que se va a eliminar. Esto se puede obtener de la SMS_TaskSequenceAction.Name propiedad . |
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