Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
U verwijdert een takenreeksactie van het besturingssysteem in Configuration Manager door de actie uit de takenreeksstappen te verwijderen.
Een takenreeksactie verwijderen
Een verbinding met de SMS-provider instellen. Zie Basisprincipes van SMS-provider voor meer informatie.
Een takenreeksobject (SMS_TaskSequence) verkrijgen. Zie Een takenreeks voor besturingssysteemimplementatie maken voor meer informatie.
Verwijder de actie uit de
SMS_TaskSequence.Stepseigenschap matrix.
Voorbeeld
Met de volgende voorbeeldmethode wordt een actie uit de takenreeks verwijderd. De actie wordt geïdentificeerd als een actie door de eigenschap Windows Management Instrumentation (WMI) __SUPERCLASS te controleren om te controleren of deze afkomstig is van SMS_TaskSequenceAction.
Zie Aanroepen Configuration Manager codefragmenten voor meer informatie over het aanroepen van de voorbeeldcode.
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;
}
}
De voorbeeldmethode heeft de volgende parameters:
| Parameter | Type | Beschrijving |
|---|---|---|
Connection |
-Beheerd:WqlConnectionManager- VBScript: SWbemServices |
Een geldige verbinding met de SMS-provider. |
taskSequence |
-Beheerd: IResultObject- VBScript: SWbemObject |
De takenreeks met de actie die moet worden verwijderd. |
actionName |
-Beheerd: String- VBScript: String |
De naam van de actie die moet worden verwijderd. Dit kan worden verkregen van de SMS_TaskSequenceAction.Name eigenschap. |
De code compileren
Voor dit C#-voorbeeld is het volgende vereist:
Naamruimten
Systeem
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Vergadering
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuust programmeren
Zie Over Configuration Manager fouten voor meer informatie over foutafhandeling.
.NET Framework Beveiliging
Zie Configuration Manager op rollen gebaseerd beheer voor meer informatie over het beveiligen van Configuration Manager toepassingen.
Zie ook
Overzicht van objectenEen takenreeksactie voor een besturingssysteemimplementatie toevoegenVerbinding maken met een SMS-provider in Configuration Manager met behulp van beheerde codeVerbinding maken met een SMS-provider in Configuration Manager met WMI-takenreeksoverzicht