您可以藉由建立SMS_TaskSequence_Condition類別實例,然後與步驟建立關聯,將條件新增至作系統部署步驟 (動作和群組 ) ,Configuration Manager。 如果條件作數都符合,則會處理步驟;否則則不是。 條件可以有一或多個作數,這些作數是SMS_TaskSequence_Condition衍生類別的實例。 您可以使用 SMS_TaskSequence_ConditionOperator 實體來指定作數的 運算子。
將條件新增至步驟
設定與SMS提供者的連線。 如需詳細資訊,請 參閱SMS提供者基本概念。
取得工作順序步驟物件。 這可以是 群組的SMS_TaskSequence_Group 物件,或是動作 的SMS_TaskSequenceAction 衍生類別物件,如需詳細資訊,請參閱 如何新增作系統部署工作順序動作。
藉由建立的實例
SMS_TaskSequence_Condition
來建立新條件。建立 SMS_TaskSequence_ConditionExpression衍生 類別的實例,以建立條件的表達式。 例如, SMS_TaskSequence_RegistryConditionExpression。
填入表達式屬性。
將表達式新增至條件 Operands 屬性。
將條件新增至工作順序步驟類別 Condition 屬性。
範例
下列範例方法會將條件新增至提供的步驟,以判斷 HKEY_LOCAL_MACHINE\MICROSOFT 登錄機碼是否存在。 SMS_TaskSequenc_RegistryCondition表示式可用來指定條件。
如需呼叫範例程式代碼的相關信息,請參閱呼叫 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;
}
}
範例方法具有下列參數:
參數 | Type | 描述 |
---|---|---|
connection |
-管理: WqlConnectionManager - VBScript: SWbemServices |
SMS 提供者的有效連線。 |
taskSequenceStep |
-管理: IResultObject - VBScript: SWbemObject |
有效的工作順序步驟 (SMS_TaskSequenceStep) 。 |
正在編譯程式碼
C# 範例具有下列編譯需求:
命名空間
系統
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
組件
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
健全的程式設計
如需錯誤處理的詳細資訊,請參閱關於 Configuration Manager 錯誤。
.NET Framework 安全性
如需保護 Configuration Manager 應用程式的詳細資訊,請參閱 Configuration Manager 角色型系統管理。
另請參閱
物件概觀 如何使用受控程序代碼如何使用WMI工作順序在 Configuration Manager 中聯機到 SMS 提供者概觀,以在 Configuration Manager 中新增作系統部署工作順序動作