SEDO-Enabled 개체의 잠금을 획득하는 방법

SEDO 사용 개체에 대한 명시적 잠금을 획득하려면

  1. WMI 클래스의 SMS_ObjectLock 인스턴스 만들기

  2. 메서드에 대한 메서드 매개 변수 개체를 RequestLock 가져옵니다.

  3. 속성에 잠그 ObjectRelPath 려는 개체의 개체 경로를 할당합니다.

  4. 속성을 trueRequestTransfer 설정합니다.

  5. 개체 인스턴스를 InvokeMethodOptions 만듭니다. Context 속성에서 이름/값 쌍을 추가합니다. 이름은 "ObjectLockContext"여야 하며 값은 Guid와 같은 고유한 값이어야 합니다. "MachineName"과 잠금을 요청하는 컴퓨터의 이름을 사용하여 다른 이름/값 쌍을 추가합니다.

  6. 인스턴스에서 InvokeMethod 를 호출합니다 SMS_ObjectLock .

  7. InvokeMethod 는 인스턴스를 반환합니다 SMS_ObjectLockRequest . RequestStateLockState 속성을 확인하여 요청의 성공 또는 실패에 대한 자세한 정보를 가져옵니다.

예시

다음 예제에서는 개체 인스턴스에 대한 명시적 잠금을 SMS_ConfigurationItem 요청합니다.

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

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

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

         InvokeMethodOptions options = new InvokeMethodOptions();  
         options.Context.Add("ObjectLockContext", Guid.NewGuid().ToString());  
         options.Context.Add("MachineName", "RequestingComputer");  

         ManagementBaseObject result = objectLock.InvokeMethod("RequestLock", 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 부여
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.Management

어셈블리

강력한 프로그래밍

오류 처리에 대한 자세한 내용은 Configuration Manager 오류 정보를 참조하세요.

참고 항목

Configuration Manager SEDO