Compartilhar via


Como Eliminar uma Ação de Sequência de Tarefas de Implementação do Sistema Operativo

Elimina uma ação de sequência de tarefas de implementação do sistema operativo, no Configuration Manager, ao remover a ação dos passos de sequência de tarefas.

Para eliminar uma ação de sequência de tarefas

  1. Configure uma ligação ao Fornecedor de SMS. Para obter mais informações, veja Noções básicas do Fornecedor de SMS.

  2. Obtenha um objeto de sequência de tarefas (SMS_TaskSequence). Para obter mais informações, veja Como Criar uma Sequência de Tarefas de Implementação do Sistema Operativo.

  3. Remova a ação da SMS_TaskSequence.Steps propriedade matriz.

Exemplo

O método de exemplo seguinte elimina uma ação da sequência de tarefas. A ação é identificada como uma ação ao verificar a propriedade Windows Management Instrumentation (WMI) __SUPERCLASS para garantir que deriva de SMS_TaskSequenceAction.

Para obter informações sobre como chamar o código de exemplo, veja Chamar Configuration Manager Fragmentos de Código.

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;
    }
}

O método de exemplo tem os seguintes parâmetros:

Parâmetro Tipo Descrição
Connection - Gerido:WqlConnectionManager
- VBScript: SWbemServices
Uma ligação válida ao Fornecedor de SMS.
taskSequence - Gerido: IResultObject
- VBScript: SWbemObject
A sequência de tarefas que contém a ação a eliminar.
actionName - Gerido: String
- VBScript: String
O nome da ação a eliminar. Isto pode ser obtido a SMS_TaskSequenceAction.Name partir da propriedade .

Compilando o código

Este exemplo de C# requer:

Namespaces

System

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assembly

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação robusta

Para obter mais informações sobre o processamento de erros, veja About Configuration Manager Errors (Acerca dos Erros de Configuration Manager).

Segurança do .NET Framework

Para obter mais informações sobre como proteger aplicações Configuration Manager, veja Configuration Manager administração baseada em funções.

Confira também

Descrição geral de ObjetosComo Adicionar uma Ação de Sequência de Tarefas de Implementação do Sistema OperativoComo Ligar a um Fornecedor de SMS no Configuration Manager Utilizando Código GeridoComo Ligar a um Fornecedor de SMS no Configuration Manager utilizando a descrição geral da sequência de tarefas WMI