如何新增作業系統部署工作順序動作
作業系統部署工作順序動作會在Configuration Manager中新增到工作順序,方法是建立SMS_TaskSequence_Action衍生類別的實例,然後將它新增至工作順序的步驟。
注意事項
Configuration Manager有一些您可以使用的內建動作。 例如,命令列動作類別 是SMS_TaskSequence_RunCommandLineAction。 這些類別衍生自 SMS_TaskSequence_Action 類別。
SMS_TaskSequenceAction 衍生自 SMS_TaskSequence_Step 類別,也就是動作和群組的基類。 工作順序會將其步驟儲存在 SMS_TaskSequence_Step陣列中,以便將動作和群組儲存在一起。
新增工作順序動作
設定與 SMS 提供者的連線。 如需詳細資訊,請參閱 SMS 提供者基本概念。
建立工作順序 (SMS_TaskSequence) 物件。 如需詳細資訊,請參閱 如何建立作業系統部署工作順序。
為您想要的動作建立 SMS_TaskSequenceAction 衍生類別實例,例如 SMS_TaskSequence_RunCommandLineAction。
視需要填入動作。
將動作新增至工作順序步驟。 這會儲存 SMS_TaskSequence) 類別 Steps 屬性。
範例
下列範例方法會建立命令列動作,並將它新增至提供的工作順序。
如需呼叫範例程式碼的相關資訊,請參閱呼叫Configuration Manager程式碼片段。
Sub AddTaskSequenceActionCommandLine(connection, taskSequence, name, description)
Dim steps
Dim action
Set action = connection.Get("SMS_TaskSequence_RunCommandLineAction").SpawnInstance_
action.CommandLine = "cmd /c Echo Hello"
action.Name=name
action.Description=description
action.Enabled=True
action.ContinueOnError=False
If IsNull(taskSequence.Steps) Then
steps = Array(action)
taskSequence.Steps=steps
Else
steps= Array(taskSequence.Steps)
ReDim steps (UBound (taskSequence.Steps)+1)
taskSequence.Steps(UBound(steps))=action
End if
End Sub
public IResultObject AddTaskSequenceActionCommandLine(
WqlConnectionManager connection,
IResultObject taskSequence,
string name,
string description)
{
try
{
// Create the new step.
IResultObject ro;
ro = connection.CreateEmbeddedObjectInstance("SMS_TaskSequence_RunCommandLineAction");
ro["CommandLine"].StringValue = @"cmd /c Echo Hello";
ro["Name"].StringValue = name;
ro["Description"].StringValue = description;
ro["Enabled"].BooleanValue = true;
ro["ContinueOnError"].BooleanValue = false;
// Add the step to the task sequence.
List<IResultObject> array = taskSequence.GetArrayItems("Steps");
array.Add(ro);
taskSequence.SetArrayItems("Steps", array);
return ro;
}
catch (SmsException e)
{
Console.WriteLine("Failed to add action: " + e.Message);
throw;
}
}
範例方法具有下列參數:
參數 | Type | 描述 |
---|---|---|
connection |
-管理: WqlConnectionManager - VBScript: SWbemServices |
SMS 提供者的有效連線。 |
taskSequence |
-管理: IResultObject - VBScript: SWbemObject |
有效的工作順序。 |
Name |
-管理: String - VBScript: String |
新動作的名稱。 |
Description |
-管理: 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 提供者
如何建立作業系統部署工作順序群組
如何刪除作業系統部署工作順序動作
工作順序概觀