在 Configuration Manager 中,您可以建立SMS_TaskSequence_SetVariableAction類別的實例,並將其新增至工作順序,以建立作系統部署工作順序變數。 您也可以在工作順序在用戶端上執行時建立工作順序變數。 如需詳細資訊,請參閱 How to Use Task Sequence Variables in a Running Configuration Manager Task Sequence。
工作順序變數是您可以透過工作順序步驟存取的名稱/值組。 您也可以建立電腦和集合特定變數。 如需詳細資訊,請參閱如何在 Configuration Manager 中建立集合變數和如何在 Configuration Manager 中建立計算機變數。
注意事項
使用 SMS_TaskSequence_SetVariableAction 類別設定的變數會覆寫在其他地方設定的變數。 例如,如果集合變數和SMS_TaskSequence_SetVariableAction具有相同的名稱,則會優先使用SMS_TaskSequence_SetVariableAction變數的值。
若要設定工作順序變數
設定與SMS提供者的連線。 如需詳細資訊,請 參閱SMS提供者基本概念。
取得要加入工作順序變數的工作順序。 如需詳細資訊,請參閱 如何建立作系統部署工作順序。
為您要新增的變數設定 VariableName 和 VariableValue 屬性。
將SMS_TaskSequence_SetVariableAction物件新增至工作順序。
範例
下列範例方法會設定工作順序變數名稱和值。
如需呼叫範例程式代碼的相關信息,請參閱呼叫 Configuration Manager 代碼段。
Sub AddTaskSequenceVariable(connection, taskSequence, variableName, variableValue)
Dim variable
Dim steps
Set variable = connection.Get("SMS_TaskSequence_SetVariableAction").SpawnInstance_
variable.Name="MyTaskSequenceVariable"
variable.Description = "A task sequence variable"
variable.Enabled=True
variable.ContinueOnError=False
variable.VariableName=variableName
variable.VariableValue=variableValue
steps= Array(taskSequence.Steps)
ReDim steps (UBound (taskSequence.Steps)+1)
taskSequence.Steps(UBound(steps))=variable
End Sub
public void AddTaskSequenceVariable(
WqlConnectionManager connection,
IResultObject taskSequence,
string variableName,
string variableValue)
{
try
{
// Create the task sequence variable object.
IResultObject variable = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_SetVariableAction");
// Populate the properties.
variable["Name"].StringValue = "MyTaskSequenceVariable";
variable["ContinueOnError"].BooleanValue = false;
variable["Description"].StringValue = "A task sequence variable set with SMS_TaskSequence_SetVariableAction";
variable["Enabled"].BooleanValue = true;
variable["VariableName"].StringValue = variableName;
variable["VariableValue"].StringValue = variableValue;
// Add the step to the task sequence.
List<IResultObject> array = taskSequence.GetArrayItems("Steps");
array.Add(variable);
taskSequence.SetArrayItems("Steps", array);
}
catch (SmsException e)
{
Console.WriteLine("Failed to set task sequence variable: " + e.Message);
throw;
}
}
此範例方法具有下列參數:
| 參數 | Type | 描述 |
|---|---|---|
connection |
-管理: WqlConnectionManager- VBScript: SWbemServices |
- SMS 提供者的有效連線。 |
taskSequence |
-管理: WqlConnectionManager- VBScript: SWbemServices |
- 變數加入的工作順序。 |
variableName |
-管理: String- VBScript: String |
變數的名稱。 |
variableValue |
-管理: String- VBScript: String |
變數的值。 |
正在編譯程式碼
此 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 角色型系統管理。
另請參閱
物件概觀 如何使用 Managed 程式代碼連線到 Configuration Manager 中的 SMS 提供者如何使用 WMI 工作順序連線到 Configuration Manager 中的 SMS 提供者概觀如何在執行中 Configuration Manager 工作中使用工作順序變數順序如何從工作順序套件讀取工作順序