次の方法で共有


オペレーティング システム展開グループからステップを削除する方法

Configuration Managerでは、ステップ (アクションまたはグループ) をオペレーティング システム展開タスク シーケンス グループから削除するには、そのステップをグループのタスク シーケンス ステップの一覧から削除します。

グループからステップを削除するには

  1. SMS プロバイダーへの接続を設定します。 詳細については、「 SMS プロバイダーの基礎」を参照してください。

  2. ステップを追加する SMS_TaskSequence_Group オブジェクトを取得します。 詳細については、「 オペレーティング システム展開タスク シーケンス グループを作成する方法」を参照してください。

  3. SMS_TaskSequence_Group.Steps 配列プロパティからアクションを削除します。

次のメソッド例では、タスク シーケンス グループからアクションを削除します。

サンプル コードの呼び出しについては、「Configuration Manager コード スニペットの呼び出し」を参照してください。

Sub RemoveActionFromGroup(taskSequenceGroup, actionName)  

    Dim i  

    If taskSequenceGroup.SystemProperties_("__CLASS")<>"SMS_TaskSequence_Group" Then  
        wscript.echo "Not a group"  
        return  
    End If  

        Dim newArray  
        Dim actionStep  

        newArray = Array(taskSequenceGroup.Steps)  
        ReDim newArray(UBound(taskSequenceGroup.Steps))  

        i=0  
        for each  actionStep in taskSequenceGroup.Steps  
            If actionStep.Name = actionName and _  
              actionStep.SystemProperties_("__SUPERCLASS") = "SMS_TaskSequence_Action" Then  
                 ReDim preserve newArray(UBound(newArray)-1) ' shrink the Array  
            else  
               wscript.echo actionStep.Name  
               Set newArray(i)=actionStep ' copy it  
               i=i+1  
            End If     

         Next  

         taskSequenceGroup.Steps=newArray  

 End Sub  
public void RemoveActionFromGroup(  
    IResultObject taskSequenceGroup,   
    string actionName)  
{  
    try  
    {  
        if (taskSequenceGroup["__CLASS"].StringValue != "SMS_TaskSequence_Group")  
        {  
            throw new System.InvalidOperationException("Not a group");  
        }  

        List<IResultObject> groupSteps = taskSequenceGroup.GetArrayItems("Steps");  
        IResultObject actionFound = null;  
        foreach (IResultObject actionStep in groupSteps)  
        {  
            if (actionStep["Name"].StringValue == actionName && actionStep["__SUPERCLASS"].StringValue == "SMS_TaskSequence_Action")  
            {  
                actionFound = actionStep;  
                break;  
            }  
        }  

        groupSteps.Remove(actionFound);  
        taskSequenceGroup.SetArrayItems("Steps", groupSteps);  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to remove action: " + e.Message);  
        throw;  
    }  
}  

このメソッドの例には、次のパラメーターがあります。

パラメーター 説明
taskSequenceGroup - マネージド: IResultObject
- VBScript: SWbemObject
削除するアクションを含むタスク シーケンス グループ。
actionName -管理: String
-Vbscript: String
削除するアクションの名前。 これは、 SMS_TaskSequenceAction.Name プロパティから取得できます。

コードのコンパイル

この 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 プロバイダーに接続する方法
別のオペレーティング システム展開タスク シーケンス グループにステップを移動する方法
オペレーティング システム展開タスク シーケンス グループを作成する方法
タスク シーケンスの概要