Så här frigör du ett lås på ett SEDO-Enabled-objekt
Så här släpper du ett explicit lås på ett SEDO-aktiverat objekt
Skapa en instans av
SMS_ObjectLock
WMI-klassenHämta metodens metodparametrar
ReleaseLock
.Tilldela objektsökvägen för det objekt som du vill låsa upp till egenskapen
ObjectRelPath
.Skapa en
InvokeMethodOptions
objektinstans. I egenskapen Kontext lägger du till ett namn/värde-par. Namnet måste vara "MachineName" och värdet måste vara namnet på den dator som släpper låset. Mer information finns i How to Acquire a Lock on a SEDO-Enabled Object (Hämta ett lås på ett SEDO-Enabled-objekt)Anropa InvokeMethod på instansen
SMS_ObjectLock
.InvokeMethod returnerar en
SMS_ObjectLockRequest
instans.RequestState
Kontrollera egenskaperna ochLockState
för att få mer information om hur begäran lyckades eller misslyckades.
Exempel
I följande exempel frigörs ett lås på en SMS_ConfigurationItem
objektinstans.
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-objektet innehåller följande egenskaper:
Egenskap | Beskrivning |
---|---|
Id | Unik identifierare för begäran. |
ObjectRelPath | Sökvägen till det objekt som låset begärs för. |
RequestState | Anger om begäran lyckades eller misslyckades. |
LockState | Anger aktuellt tillstånd för det begärda låset. |
AssignedUser | Anger den för tillfället tilldelade användaren av det begärda låset. |
AssignedObjectLockContext | Anger ObjectLockContext som låset för närvarande är kopplat till. |
AssignedMachine | Anger den dator som har tilldelats det begärda låset. |
AssignedSiteCode | Anger den aktuella platsen för det begärda låset. |
AssignedTimeUTC | Anger den tidpunkt då det begärda låset tilldelades. |
RequestState
Tabellen nedan visar möjliga värden för begärandetillstånd. Begärandetillstånden Granted, GrantedAfterTimeout och GrantedLockWasOrphaned anger en lyckad begäran och användaren kan sedan göra och spara ändringar i objektet. Alla andra begäranden indikerar fel.
RequestStateID | RequestStateName |
---|---|
0 | Okänd |
2 | Begärd |
3 | RequestedCanceled |
4 | ResponseReceived |
10 | Beviljas |
11 | GrantedAfterTimeout |
12 | GrantedLockWasOrphaned |
20 | DeniedLockAlreadyAssigned |
21 | DeniedInvalidObjectVersion |
22 | DeniedLockNotFound |
23 | DeniedLockNotLocal |
24 | DeniedRequestTimedOut |
50 | Fel |
52 | ErrorRequestNotFound |
53 | ErrorRequestTimedOut |
LockState
Tabellen nedan visar möjliga låstillståndsvärden.
LockStateID | LockStateName |
---|---|
0 | Otilldelade |
1 | Tilldelade |
2 | Begärd |
3 | Väntandetilldelning |
4 | TimedOut |
5 | NotFound |
Kompilera koden
C#-exemplet kräver:
Namnområden
System
System.Management
Församlingen
Robust programmering
Mer information om felhantering finns i Om Configuration Manager fel.