在 Configuration Manager 中,您可以建立作業系統部署工作順序變數,方法是建立 SMS_TaskSequence_SetVariableAction 類別的執行個體,並新增到工作順序。 您也可以在工作順序在用戶端上執行時建立工作順序變數。 如需詳細資訊,請參閱 如何在執行中的 Configuration Manager 工作順序中使用工作順序變數。
工作順序變數是可透過工作順序步驟存取的名稱/值組。 您也可以建立電腦和集合特定的變數。 如需詳細資訊,請參閱 如何在 Configuration Manager 中建立集合變數 和 如何在 Configuration Manager 中建立電腦變數。
注意事項
使用 SMS_TaskSequence_SetVariableAction 類別設定的變數會覆寫在其他地方設定的變數。 例如,如果集合變數和SMS_TaskSequence_SetVariableAction具有相同的名稱,則 SMS_TaskSequence_SetVariableAction 變數的值優先。
若要設定工作順序變數
設定與 SMS 提供者的連線。 如需詳細資訊,請參閱 SMS 提供者基礎。
取得工作順序以新增工作順序變數。 如需詳細資訊,請參閱 如何建立作業系統部署工作順序。
建立 SMS_TaskSequence_SetVariableAction 的執行個體。
設定您要新增之變數的 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 角色型系統管理。
另請參閱
物件概觀如何使用託管程式碼連線到 Configuration Manager 中的 SMS 提供者如何使用 WMI 連線到 Configuration Manager 中的 SMS 提供者工作順序概觀如何在執行中的 Configuration Manager 工作中使用工作順序變數sequence如何從工作順序套件讀取工作順序