Come aggiungere una condizione a un passaggio della sequenza di attività di distribuzione del sistema operativo
Le condizioni possono essere aggiunte a un passaggio di distribuzione del sistema operativo (azione e gruppo), in Configuration Manager, creando un'istanza della classe SMS_TaskSequence_Condition e quindi associandola al passaggio . Se gli operandi della condizione sono tutti soddisfatti, il passaggio viene elaborato; in caso contrario, non lo è. La condizione può avere uno o più operandi che sono istanze di SMS_TaskSequence_Condition classi derivate. Specificare gli operatori per gli operandi con istanze di SMS_TaskSequence_ConditionOperator.
Per aggiungere una condizione a un passaggio
Configurare una connessione al provider SMS. Per altre informazioni, vedere Nozioni fondamentali sul provider SMS.
Ottenere un oggetto passaggio della sequenza di attività. Può trattarsi di un oggetto SMS_TaskSequence_Group per un gruppo o di un oggetto classe derivata SMS_TaskSequenceAction per un'azione, per altre informazioni, vedere Come aggiungere un'azione della sequenza di attività di distribuzione del sistema operativo.
Creare una nuova condizione creando un'istanza di
SMS_TaskSequence_Condition
.Creare un'espressione per la condizione creando un'istanza di una classe derivata SMS_TaskSequence_ConditionExpression . Ad esempio, SMS_TaskSequence_RegistryConditionExpression.
Popolare le proprietà dell'espressione.
Aggiungere l'espressione alla proprietà operandi condizione.
Aggiungere la condizione alla proprietà Condition della classe di passaggio della sequenza di attività.
Esempio
Il metodo di esempio seguente aggiunge una condizione a un passaggio fornito che determina se esiste la chiave del Registro di sistema HKEY_LOCAL_MACHINE\MICROSOFT. L'espressione SMS_TaskSequenc_RegistryCondition viene utilizzata per specificare la condizione.
Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice 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;
}
}
Il metodo di esempio include i parametri seguenti:
Parametro | Tipo | Descrizione |
---|---|---|
connection |
-Gestito: WqlConnectionManager - VBScript: SWbemServices |
Connessione valida al provider SMS. |
taskSequenceStep |
-Gestito: IResultObject - VBScript: SWbemObject |
Passaggio della sequenza di attività valido (SMS_TaskSequenceStep). |
Compilazione del codice
L'esempio C# presenta i requisiti di compilazione seguenti:
Namespaces
Sistema
System.collections.generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programmazione efficiente
Per altre informazioni sulla gestione degli errori, vedere Informazioni sugli errori di Configuration Manager.
Sicurezza di .NET Framework
Per altre informazioni sulla protezione delle applicazioni Configuration Manager, vedere Configuration Manager'amministrazione basata sui ruoli.
Vedere anche
Panoramica degli oggettiCome aggiungere un'azione della sequenza di attività di distribuzione del sistema operativo
Come connettersi a un provider SMS in Configuration Manager tramite codice gestito
Come connettersi a un provider SMS in Configuration Manager tramite WMI
Panoramica sulla sequenza delle attività