Guide pratique pour ajouter une condition à une étape de séquence de tâches de déploiement de système d’exploitation
Les conditions peuvent être ajoutées à une étape de déploiement de système d’exploitation (action et groupe), dans Configuration Manager, en créant une instance de classe SMS_TaskSequence_Condition, puis en l’associant à l’étape. Si les opérandes de condition sont tous remplis, l’étape est traitée ; sinon, ce n’est pas le cas. La condition peut avoir un ou plusieurs opérandes qui sont des instances de SMS_TaskSequence_Condition classes dérivées. Vous spécifiez des opérateurs pour les opérandes avec des instances de SMS_TaskSequence_ConditionOperator.
Pour ajouter une condition à une étape
Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.
Obtenir un objet d’étape de séquence de tâches. Il peut s’agir d’un objet SMS_TaskSequence_Group pour un groupe ou d’un objet de classe SMS_TaskSequenceAction dérivé d’une action. Pour plus d’informations, consultez Comment ajouter une action de séquence de tâches de déploiement de système d’exploitation.
Créez une condition en créant une instance de
SMS_TaskSequence_Condition
.Créez une expression pour la condition en créant une instance d’une classe dérivée SMS_TaskSequence_ConditionExpression . Par exemple, SMS_TaskSequence_RegistryConditionExpression.
Remplissez les propriétés de l’expression.
Ajoutez l’expression à la propriété condition Operands .
Ajoutez la condition à la propriété Condition de la classe d’étape de séquence de tâches.
Exemple
L’exemple de méthode suivant ajoute une condition à une étape fournie qui détermine si la clé de Registre HKEY_LOCAL_MACHINE\MICROSOFT existe. L’expression SMS_TaskSequenc_RegistryCondition est utilisée pour spécifier la condition.
Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code Configuration Manager.
Sub AddRegistryCondition (connection, taskSequenceStep)
Dim condition
Dim registryExpression
Dim operands
' Get or create the condition.
if IsNull ( taskSequenceStep.Condition) Then
Set condition = connection.Get("SMS_TaskSequence_Condition").SpawnInstance_
Else
Set condition = taskSequenceStep.Condition
End If
' Populate the condition.
Set registryExpression=connection.Get("SMS_TaskSequence_RegistryConditionExpression").SpawnInstance_
registryExpression.KeyPath="HKEY_LOCAL_MACHINE\MICROSOFT"
registryExpression.Operator="exists"
registryExpression.Type="REG_SZ"
registryExpression.Data=Null
' Add the condition.
operands=Array(registryExpression)
condition.Operands=operands
taskSequenceStep.Condition=condition
End Sub
public void AddRegistryCondition(
WqlConnectionManager connection,
IResultObject taskSequenceStep)
{
try
{
IResultObject condition;
if (taskSequenceStep["Condition"].ObjectValue == null)
{
// Create a new condition.
condition = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_Condition");
}
else
{ // Get the existing condition.
condition = taskSequenceStep.GetSingleItem("Condition");
}
// Create and populate the expression.
IResultObject registryExpression = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_RegistryConditionExpression");
registryExpression["KeyPath"].StringValue = @"HKEY_LOCAL_MACHINE\MICROSOFT";
registryExpression["Operator"].StringValue = "exists";
registryExpression["Type"].StringValue = "REG_SZ";
registryExpression["Data"].StringValue = null;
// Get the operands and add the expression.
List<IResultObject> operands = condition.GetArrayItems("Operands");
operands.Add(registryExpression);
// Add the expresssion to the list of operands.
condition.SetArrayItems("Operands", operands);
// Add the condition to the sequence.
taskSequenceStep.SetSingleItem("Condition", condition);
}
catch (SmsException e)
{
Console.WriteLine("Failed to create Task Sequence: " + 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. |
taskSequenceStep |
-Géré: IResultObject - VBScript : SWbemObject |
Étape de séquence de tâches valide (SMS_TaskSequenceStep). |
Compilation du code
L’exemple C# présente les exigences de compilation suivantes :
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