Entfernen eines Schritts aus einer Betriebssystembereitstellungsgruppe
In Configuration Manager löschen Sie einen Schritt (eine Aktion oder eine Gruppe) aus einer Tasksequenzgruppe für die Betriebssystembereitstellung, indem Sie den Schritt aus der Liste der Tasksequenzschritte der Gruppe löschen.
So entfernen Sie einen Schritt aus einer Gruppe
Richten Sie eine Verbindung mit dem SMS-Anbieter ein. Weitere Informationen finden Sie unter Grundlagen des SMS-Anbieters.
Rufen Sie das SMS_TaskSequence_Group-Objekt ab, dem Sie den Schritt hinzufügen möchten. Weitere Informationen finden Sie unter Erstellen einer Tasksequenzgruppe für die Betriebssystembereitstellung.
Entfernen Sie die Aktion aus der SMS_TaskSequence_Group.Steps-Arrayeigenschaft.
Beispiel
Die folgende Beispielmethode entfernt eine Aktion aus einer Tasksequenzgruppe.
Informationen zum Aufrufen des Beispielcodes finden Sie unter Aufrufen von Configuration Manager Codeausschnitten.
Sub RemoveActionFromGroup(taskSequenceGroup, actionName)
Dim i
If taskSequenceGroup.SystemProperties_("__CLASS")<>"SMS_TaskSequence_Group" Then
wscript.echo "Not a group"
return
End If
Dim newArray
Dim actionStep
newArray = Array(taskSequenceGroup.Steps)
ReDim newArray(UBound(taskSequenceGroup.Steps))
i=0
for each actionStep in taskSequenceGroup.Steps
If actionStep.Name = actionName and _
actionStep.SystemProperties_("__SUPERCLASS") = "SMS_TaskSequence_Action" Then
ReDim preserve newArray(UBound(newArray)-1) ' shrink the Array
else
wscript.echo actionStep.Name
Set newArray(i)=actionStep ' copy it
i=i+1
End If
Next
taskSequenceGroup.Steps=newArray
End Sub
public void RemoveActionFromGroup(
IResultObject taskSequenceGroup,
string actionName)
{
try
{
if (taskSequenceGroup["__CLASS"].StringValue != "SMS_TaskSequence_Group")
{
throw new System.InvalidOperationException("Not a group");
}
List<IResultObject> groupSteps = taskSequenceGroup.GetArrayItems("Steps");
IResultObject actionFound = null;
foreach (IResultObject actionStep in groupSteps)
{
if (actionStep["Name"].StringValue == actionName && actionStep["__SUPERCLASS"].StringValue == "SMS_TaskSequence_Action")
{
actionFound = actionStep;
break;
}
}
groupSteps.Remove(actionFound);
taskSequenceGroup.SetArrayItems("Steps", groupSteps);
}
catch (SmsException e)
{
Console.WriteLine("Failed to remove action: " + e.Message);
throw;
}
}
Die Beispielmethode verfügt über die folgenden Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
taskSequenceGroup |
– Verwaltet: IResultObject – VBScript: SWbemObject |
Die Tasksequenzgruppe, die die zu löschende Aktion enthält. |
actionName |
-Verwalteten: String -Vbscript: String |
Der Name der aktion, die gelöscht werden soll. Dies kann von der SMS_TaskSequenceAction.Name-Eigenschaft abgerufen werden. |
Kompilieren des Codes
Für dieses C#-Beispiel ist Folgendes erforderlich:
Namespaces
System
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuste Programmierung
Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager Fehlern.
.NET Framework-Sicherheit
Weitere Informationen zum Schützen Configuration Manager Anwendungen finden Sie unter Configuration Manager rollenbasierte Verwaltung.
Siehe auch
ObjektübersichtHinzufügen eines Schritts zu einer Betriebssystembereitstellungsgruppe
Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von verwaltetem Code
Herstellen einer Verbindung mit einem SMS-Anbieter in Configuration Manager mithilfe von WMI
Verschieben eines Schritts in eine andere Tasksequenzgruppe für die Betriebssystembereitstellung
Erstellen einer Tasksequenzgruppe für die Betriebssystembereitstellung
Übersicht über Aufgabensequenzen