Dela via


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

  1. Skapa en instans av SMS_ObjectLock WMI-klassen

  2. Hämta metodens metodparametrar ReleaseLock .

  3. Tilldela objektsökvägen för det objekt som du vill låsa upp till egenskapen ObjectRelPath .

  4. 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)

  5. Anropa InvokeMethod på instansen SMS_ObjectLock .

  6. InvokeMethod returnerar en SMS_ObjectLockRequest instans. RequestState Kontrollera egenskaperna och LockState 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.

Se även

Configuration Manager SEDO