SEDO-Enabled 개체의 잠금을 획득하는 방법
SEDO 사용 개체에 대한 명시적 잠금을 획득하려면
WMI 클래스의
SMS_ObjectLock
인스턴스 만들기메서드에 대한 메서드 매개 변수 개체를
RequestLock
가져옵니다.속성에 잠그
ObjectRelPath
려는 개체의 개체 경로를 할당합니다.속성을
true
로RequestTransfer
설정합니다.개체 인스턴스를
InvokeMethodOptions
만듭니다. Context 속성에서 이름/값 쌍을 추가합니다. 이름은 "ObjectLockContext"여야 하며 값은 Guid와 같은 고유한 값이어야 합니다. "MachineName"과 잠금을 요청하는 컴퓨터의 이름을 사용하여 다른 이름/값 쌍을 추가합니다.인스턴스에서 InvokeMethod 를 호출합니다
SMS_ObjectLock
.InvokeMethod 는 인스턴스를 반환합니다
SMS_ObjectLockRequest
.RequestState
및LockState
속성을 확인하여 요청의 성공 또는 실패에 대한 자세한 정보를 가져옵니다.
예시
다음 예제에서는 개체 인스턴스에 대한 명시적 잠금을 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 오류 정보를 참조하세요.