如何释放SEDO-Enabled对象的锁定

在已启用 SEDO 的对象上释放显式锁定

  1. 创建 WMI 类的 SMS_ObjectLock 实例

  2. 获取方法的方法参数对象 ReleaseLock

  3. 将要解锁的 对象的对象路径分配给 ObjectRelPath 属性。

  4. 创建 InvokeMethodOptions 对象实例。 在 Context 属性上,添加名称/值对。 名称必须是“MachineName”,值必须是释放锁的计算机的名称。 有关详细信息,请参阅 如何获取SEDO-Enabled对象的锁

  5. SMS_ObjectLock实例调用 InvokeMethod

  6. InvokeMethod 将返回实例 SMS_ObjectLockRequestRequestState检查 和 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 Error
52 ErrorRequestNotFound
53 ErrorRequestTimedOut

LockState
下表显示了可能的锁定状态值。

LockStateID LockStateName
0 未分配
1 已分配
2 已请求
3 PendingAssignment
4 TimedOut
5 NotFound

编译代码

C# 示例需要:

命名空间

系统警报

System.Management

Assembly

可靠编程

有关错误处理的详细信息,请参阅关于Configuration Manager错误

另请参阅

Configuration Manager SEDO