在已启用 SEDO 的对象上释放显式锁定
创建 WMI 类的
SMS_ObjectLock实例获取方法的方法参数对象
ReleaseLock。将要解锁的 对象的对象路径分配给
ObjectRelPath属性。创建
InvokeMethodOptions对象实例。 在 Context 属性上,添加名称/值对。 名称必须是“MachineName”,值必须是释放锁的计算机的名称。 有关详细信息,请参阅 如何获取 SEDO-Enabled 对象的锁对
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");
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.Management
Assembly
可靠编程
有关错误处理的详细信息,请参阅关于Configuration Manager错误。