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 Gestor de Configuração, removendo a ação dos passos da sequência de tarefas.
Para eliminar uma ação de sequência de tarefa
Configurar uma ligação com o Fornecedor DE SMS. Para mais informações, consulte os fundamentos do Fornecedor de SMS.
Obtenha uma sequência de tarefa(SMS_TaskSequence)objeto. Para obter mais informações, consulte Como Criar uma sequência de tarefas de implementação do sistema operativo.
Retire a ação da
SMS_TaskSequence.Steps
propriedade da matriz.
Exemplo
O método exemplo a seguir elimina uma ação da sequência de tarefas. A ação é identificada como uma ação através da verificação do _SUPERCLASS de propriedade da Windows Management Instrumentation (WMI) _ para garantir que provém de SMS_TaskSequenceAction.
Para obter informações sobre a chamada do código de amostra, consulte o Código de Identificação do Gestor de Chamadas.
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 exemplo tem os seguintes parâmetros:
Parâmetro | Tipo | Description |
---|---|---|
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 ser suprimida. Isto pode ser obtido a partir da SMS_TaskSequenceAction.Name propriedade. |
A Compilar o Código
Este exemplo C# requer:
Espaços de nomes
Sistema
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assemblagem
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programação Robusta
Para obter mais informações sobre o tratamento de erros, consulte Sobre erros do Gestor de Configuração.
Segurança do .NET Framework
Para obter mais informações sobre a segurança das aplicações do Gestor de Configuração, consulte a administração baseada em funções do Gestor de Configuração.
Consulte também
Visão geral de objetos Como Adicionar uma Ação de Sequência de Tarefa de Implementação do Sistema Operativo
Como Ligação a um fornecedor de SMS no Gestor de Configuração através da utilização do Código Gerido
Como Ligação a um fornecedor de SMS no Gestor de Configuração através da utilização do WMI
Task sequence overview (Descrição geral da sequência de tarefas)