Ta bort en aktivitetssekvensåtgärd för operativsystemdistribution
Du tar bort en aktivitetssekvensåtgärd för operativsystemdistribution i Configuration Manager genom att ta bort åtgärden från aktivitetssekvensstegen.
Ta bort en aktivitetssekvensåtgärd
Konfigurera en anslutning till SMS-providern. Mer information finns i grunderna för SMS-provider.
Hämta ett aktivitetssekvensobjekt (SMS_TaskSequence). Mer information finns i Så här skapar du en aktivitetssekvens för operativsystemdistribution.
Ta bort åtgärden från matrisegenskapen
SMS_TaskSequence.Steps
.
Exempel
Följande exempelmetod tar bort en åtgärd från aktivitetssekvensen. Åtgärden identifieras som en åtgärd genom att kontrollera WMI-egenskapen (Windows Management Instrumentation) __SUPERCLASS för att säkerställa att den härleds från SMS_TaskSequenceAction.
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
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;
}
}
Exempelmetoden har följande parametrar:
Parameter | Typ | Beskrivning |
---|---|---|
Connection |
-Hanterade:WqlConnectionManager – VBScript: SWbemServices |
En giltig anslutning till SMS-providern. |
taskSequence |
-Hanterade: IResultObject – VBScript: SWbemObject |
Aktivitetssekvensen som innehåller den åtgärd som ska tas bort. |
actionName |
-Hanterade: String -Vbscript: String |
Namnet på den åtgärd som ska tas bort. Detta kan hämtas från egenskapen SMS_TaskSequenceAction.Name . |
Kompilera koden
Det här C#-exemplet kräver:
Namnområden
System
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Församlingen
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robust programmering
Mer information om felhantering finns i Om Configuration Manager fel.
.NET Framework Säkerhet
Mer information om hur du skyddar Configuration Manager program finns i Configuration Manager rollbaserad administration.
Se även
ObjektöversiktSå här lägger du till en aktivitetssekvensåtgärd för operativsystemdistribution
Ansluta till en SMS-provider i Configuration Manager med hjälp av hanterad kod
Ansluta till en SMS-provider i Configuration Manager med hjälp av WMI
Översikt över aktivitetssekvens