Como reordenar uma sequência de tarefas de implantação do sistema operacional
Em Configuration Manager, você pode reordenar as etapas (uma ação ou um grupo) em uma sequência de tarefas ou grupo reorganizando a sequência de etapas na propriedade Etapas SMS_TaskSequence_Step matriz.
Para reordenar uma sequência de tarefas
Configure uma conexão com o Provedor de SMS. Para obter mais informações, confira Os fundamentos do Provedor de SMS.
Obtenha uma sequência de tarefas válida (SMS_TaskSequence) ou um grupo de sequência de tarefas (SMS_TaskSequence_Group). Para obter mais informações, consulte Como ler uma sequência de tarefas de um pacote de sequência de tarefas.
Dentro da propriedade matriz
Steps
, mova o SMS_TaskSequence_Step para sua nova localização.Atualize a sequência de tarefas ou o grupo.
Exemplo
O exemplo a seguir mostra como mover um passo para cima ou para baixo dentro de uma sequência de tarefas ou grupo.
Para obter informações sobre como chamar o código de exemplo, consulte Chamando Configuration Manager Snippets de Código.
Sub MoveTaskSequenceStepDown(taskSequence, stepName)
Dim index
Dim osdStep
Dim temp
index=0
' If found, move the step down.
for each osdStep in taskSequence.Steps
If osdStep.Name=stepName Then
If index < Ubound (TaskSequence.Steps) Then
Set temp=osdStep
taskSequence.Steps(index)=taskSequence.Steps(index+1)
taskSequence.Steps(index+1)=temp
Exit For
End If
End If
index=index+1
next
End Sub
Sub MoveTaskSequenceStepUp(taskSequence, stepName)
Dim index
Dim osdStep
Dim temp
index=0
' If found, move the step up.
for Each osdStep In taskSequence.Steps
If osdStep.Name=stepName Then
If index >1 Then
Set temp=osdStep
taskSequence.Steps(index)=taskSequence.Steps(index-1)
taskSequence.Steps(index-1)=temp
Exit For
End If
End If
index=index+1
next
End Sub
public void MoveTaskSequenceStepDown(
IResultObject taskSequence,
string taskSequenceStepName)
{
try
{
// Get the task sequence steps.
List<IResultObject> steps = taskSequence.GetArrayItems("Steps"); // Array of SMS_TaskSequence_Steps.
int index = 0;
// Scan through the steps to find the step to move down.
foreach (IResultObject ro in steps)
{
if (ro["Name"].StringValue == taskSequenceStepName)
{
// Move the step.
if (index < steps.Count - 1) // Not at end, so we can flip.
{
steps.Insert(index + 2, steps[index]);
steps.Remove(steps[index]);
taskSequence.SetArrayItems("Steps", steps);
break;
}
}
index++;
}
}
catch (SmsException e)
{
Console.WriteLine("Failed To enumerate task sequence items: " + e.Message);
throw;
}
}
public void MoveTaskSequenceStepUp(
IResultObject taskSequence,
string taskSequenceStepName)
{
try
{
// Get the task sequence steps.
List<IResultObject> steps = taskSequence.GetArrayItems("Steps"); // Array of SMS_TaskSequence_Steps.
int index = 0;
foreach (IResultObject ro in steps)
{
if (ro["Name"].StringValue == taskSequenceStepName)
{
if (index > 0) // Not the first step, so you can move it up.
{
steps.Insert(index + 1, steps[index - 1]);
steps.Remove(steps[index - 1]);
taskSequence.SetArrayItems("Steps", steps);
break;
}
}
index++;
}
}
catch (SmsException e)
{
Console.WriteLine("Failed To enumerate task sequence items: " + e.Message);
throw;
}
}
O método de exemplo tem os seguintes parâmetros:
Parâmetro | Tipo | Descrição |
---|---|---|
taskSequence |
-Gerenciado: IResultObject - VBScript: SWbemObject |
Uma sequência de tarefas válida ou um grupo de sequência de tarefas |
taskSequenceStepName stepName |
-Gerenciado: String -Vbscript: String |
O nome da etapa de sequência de tarefas a ser movida. |
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 tratamento de erros, consulte Sobre erros de Configuration Manager.
Segurança do .NET Framework
Para obter mais informações sobre como proteger aplicativos Configuration Manager, consulte Configuration Manager administração baseada em função.
Confira também
Visão geral de objetoscomo adicionar uma ação de sequência de tarefas de implantação do sistema operacional
Como se conectar a um provedor de SMS em Configuration Manager usando código gerenciado
Como se conectar a um provedor de SMS no Configuration Manager usando o WMI
Visão geral de sequências de tarefas