如何取得SEDO-Enabled物件的鎖定
取得已啟用 SEDO 之物件的明確鎖定
建立 WMI 類別的
SMS_ObjectLock
實例取得 方法的方法參數物件
RequestLock
。將您想要鎖定之物件的物件路徑指派給
ObjectRelPath
屬性。將 屬性
RequestTransfer
設定為true
。建立物件實
InvokeMethodOptions
例。 在 CoNtext 屬性上,新增名稱/值組。 名稱必須是 「ObjectLockCoNtext」,且值必須是唯一的值,例如 Guid。 使用 「MachineName」 和要求鎖定的電腦名稱稱,新增另一個名稱/值組。在 實例上
SMS_ObjectLock
呼叫InvokeMethod。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 | Unknown |
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錯誤。