作系統部署工作順序動作會新增至工作順序,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 角色型系統管理。
另請參閱
物件概觀 如何使用 WMI 如何建立作系統部署工作順序群組,在 Configuration Manager 中使用 Managed 程式代碼將條件新增至作系統部署工作順序步驟如何連線到 SMS 提供者如何在 Configuration Manager 中聯機到 SMS 提供者如何刪除作系統部署工作順序動作工作順序概觀