オペレーティング システムの展開タスク シーケンス アクションを追加する方法
オペレーティング システムの展開タスク シーケンス アクションは、SMS_TaskSequence_Action派生クラスのインスタンスを作成し、タスク シーケンスの手順に追加することで、Configuration Managerタスク シーケンスに追加されます。
注:
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;
}
}
このメソッドの例には、次のパラメーターがあります。
パラメーター | 型 | 説明 |
---|---|---|
connection |
-管理: WqlConnectionManager - VBScript: SWbemServices |
SMS プロバイダーへの有効な接続。 |
taskSequence |
-管理: IResultObject - VBScript: SWbemObject |
有効なタスク シーケンス。 |
Name |
-管理: String -Vbscript: String |
新しいアクションの名前。 |
Description |
-管理: String -Vbscript: String |
アクションの説明。 |
コードのコンパイル
この C# の例では、次のものが必要です。
名前空間
System
System.Collections.Generic
System.text
Microsoft。ConfigurationManagement.ManagementProvider
Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
堅牢なプログラミング
エラー処理の詳細については、「Configuration Manager エラーについて」を参照してください。
.NET Framework のセキュリティ
Configuration Manager アプリケーションのセキュリティ保護の詳細については、「ロールベースの管理Configuration Manager」を参照してください。
関連項目
オブジェクトの概要オペレーティング システム展開タスク シーケンス ステップに条件を追加する方法
マネージド コードを使用してConfiguration Managerで SMS プロバイダーに接続する方法
WMI を使用してConfiguration Managerで SMS プロバイダーに接続する方法
オペレーティング システム展開タスク シーケンス グループを作成する方法
オペレーティング システムの展開タスク シーケンス アクションを削除する方法
タスク シーケンスの概要