Удаление действия последовательности задач развертывания операционной системы
Действие последовательности задач развертывания операционной системы удаляется в Configuration Manager путем удаления действия из шагов последовательности задач.
Удаление действия последовательности задач
Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Основы поставщика SMS.
Получение объекта последовательности задач (SMS_TaskSequence). Дополнительные сведения см. в разделе Создание последовательности задач развертывания операционной системы.
Удалите действие из свойства массива
SMS_TaskSequence.Steps
.
Пример
В следующем примере метод удаляет действие из последовательности задач. Действие определяется как действие путем проверки свойства инструментария управления Windows (WMI) __SUPERCLASS, чтобы убедиться, что оно является производным от SMS_TaskSequenceAction.
Сведения о вызове примера кода см. в разделе Вызов фрагментов кода 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;
}
}
Метод примера имеет следующие параметры:
Параметр | Тип | Описание |
---|---|---|
Connection |
-Управляемых:WqlConnectionManager — VBScript: SWbemServices |
Допустимое подключение к поставщику SMS. |
taskSequence |
-Управляемых: IResultObject — VBScript: SWbemObject |
Последовательность задач, содержащая удаляемое действие. |
actionName |
-Управляемых: String -Vbscript: String |
Имя удаляемого действия. Это можно получить из SMS_TaskSequenceAction.Name свойства . |
Компиляция программы
Для этого примера на C# требуется следующее:
Пространства имен
System;
System.Collections.Generic;
System.Text
Майкрософт. ConfigurationManagement.ManagementProvider
Майкрософт. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Надежное программирование
Дополнительные сведения об обработке ошибок см. в разделе Сведения об ошибках Configuration Manager.
Безопасность .NET Framework
Дополнительные сведения о защите приложений Configuration Manager см. в статье Configuration Manager администрирование на основе ролей.
См. также
Общие сведения об объектах. Добавление действия последовательности задач развертывания операционной системы
Подключение к поставщику SMS в Configuration Manager с помощью управляемого кода
Подключение к поставщику SMS в Configuration Manager с помощью WMI
Обзор последовательности задач