Comment supprimer une action de séquence de tâches de déploiement de système d’exploitation
Vous supprimez une action de séquence de tâches de déploiement de système d’exploitation, dans Configuration Manager, en supprimant l’action des étapes de la séquence de tâches.
Pour supprimer une action de séquence de tâches
Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.
Obtenir un objet de séquence de tâches (SMS_TaskSequence). Pour plus d’informations, consultez Procédure de création d’une séquence de tâches de déploiement de système d’exploitation.
Supprimez l’action de la
SMS_TaskSequence.Steps
propriété array.
Exemple
L’exemple de méthode suivant supprime une action de la séquence de tâches. L’action est identifiée en tant qu’action en vérifiant la propriété WMI (Windows Management Instrumentation) __SUPERCLASS pour vérifier qu’elle dérive de SMS_TaskSequenceAction.
Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code 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;
}
}
L’exemple de méthode a les paramètres suivants :
Paramètre | Type | Description |
---|---|---|
Connection |
-Géré:WqlConnectionManager - VBScript : SWbemServices |
Connexion valide au fournisseur SMS. |
taskSequence |
-Géré: IResultObject - VBScript : SWbemObject |
Séquence de tâches contenant l’action à supprimer. |
actionName |
-Géré: String -Vbscript: String |
Nom de l’action à supprimer. Vous pouvez l’obtenir à partir de la SMS_TaskSequenceAction.Name propriété . |
Compilation du code
Cet exemple C# nécessite :
Espaces de noms
Système
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programmation robuste
Pour plus d’informations sur la gestion des erreurs, consultez À propos des erreurs Configuration Manager.
Sécurité de .NET Framework
Pour plus d’informations sur la sécurisation des applications Configuration Manager, consultez Configuration Manager’administration basée sur les rôles.
Voir aussi
Vue d’ensemble des objetsComment ajouter une action de séquence de tâches de déploiement de système d’exploitation
Comment se connecter à un fournisseur SMS dans Configuration Manager à l’aide de code managé
Comment se connecter à un fournisseur SMS dans Configuration Manager à l’aide de WMI
Vue d’ensemble de la séquence de tâches