次の方法で共有


SEDO-Enabled オブジェクトのロックを解放する方法

SEDO 対応オブジェクトの明示的ロックを解放するには

  1. WMI クラスのインスタンスを作成するSMS_ObjectLock

  2. メソッドのメソッド パラメーター オブジェクトを ReleaseLock 取得します。

  3. ロックを解除するオブジェクトのオブジェクト パスを プロパティに ObjectRelPath 割り当てます。

  4. オブジェクト インスタンスを作成します InvokeMethodOptions 。 Context プロパティで、名前と値のペアを追加します。 名前は "MachineName" で、値はロックを解放するコンピューターの名前である必要があります。 詳細については、「SEDO-Enabled オブジェクトのロックを取得する方法」を参照してください。

  5. インスタンスで InvokeMethodSMS_ObjectLock 呼び出します。

  6. InvokeMethod はインスタンスを SMS_ObjectLockRequest 返します。 RequestStateプロパティと LockState プロパティを確認して、要求の成功または失敗に関する詳細情報を取得します。

次の例では、オブジェクト インスタンスのロックを SMS_ConfigurationItem 解放します。

class Program  
{  
    static void Main(string[] args)   
    {  
        ManagementScope scope = new ManagementScope(@"\siteservername\root\sms\site_ABC");  
        ReleaseLock(scope);   
    }  

    public static void ReleaseLock(ManagementScope scope)   
    {  
        ManagementPath path = new ManagementPath("SMS_ObjectLock");  
        ManagementClass objectLock = new ManagementClass(scope, path, null);   

        ManagementBaseObject inParams = objectLock.GetMethodParameters("ReleaseLock");  
        inParams["ObjectRelPath"] = "SMS_ConfigurationItem.CI_ID=30";  

        InvokeMethodOptions options = new InvokeMethodOptions();  
        options.Context.Add("MachineName", "RequestingComputer");   

        ManagementBaseObject result = objectLock.InvokeMethod("ReleaseLock", inParams, options);   

    }  
}  

SMS_ObjectLockRequest オブジェクトには、次のプロパティが含まれています。

プロパティ 説明
RequestID 要求の一意識別子。
ObjectRelPath ロックが要求されるオブジェクトのパス。
RequestState 要求の成功または失敗を示します。
LockState 要求されたロックの現在の状態を示します。
AssignedUser 要求されたロックの現在割り当てられているユーザーを示します。
AssignedObjectLockContext ロックが現在割り当てられている ObjectLockContext を示します。
AssignedMachine 要求されたロックの現在割り当てられているコンピューターを示します。
AssignedSiteCode 要求されたロックの現在のサイトを示します。
AssignedTimeUTC 要求されたロックが割り当てられた時刻を示します。

RequestState
次の表に、使用可能な要求状態の値を示します。 要求の状態 Granted、GrantedAfterTimeout、GrantedLockWasOrphaned は要求が成功したことを示し、ユーザーはオブジェクトに変更を加えて保存できます。 その他のすべての要求は、エラーを示します。

RequestStateID RequestStateName
0 不明
2 要求済み
3 RequestedCanceled
4 ResponseReceived
10 Granted
11 GrantedAfterTimeout
12 GrantedLockWasOrphaned
20 DeniedLockAlreadyAssigned
21 DeniedInvalidObjectVersion
22 DeniedLockNotFound
23 DeniedLockNotLocal
24 DeniedRequestTimedOut
50 エラー
52 ErrorRequestNotFound
53 ErrorRequestTimedOut

LockState
次の表に、使用可能なロック状態の値を示します。

LockStateID LockStateName
0 未割り当て
1 割り当て済み
2 要求済み
3 PendingAssignment
4 TimedOut
5 NotFound

コードのコンパイル

C# の例では、次のものが必要です。

名前空間

System

System.Management

Assembly

堅牢なプログラミング

エラー処理の詳細については、「Configuration Manager エラーについて」を参照してください。

関連項目

Configuration Manager SEDO