Dela via


Så här hämtar du ett lås på ett SEDO-Enabled-objekt

Hämta ett explicit lås på ett SEDO-aktiverat objekt

  1. Skapa en instans av SMS_ObjectLock WMI-klassen

  2. Hämta metodens metodparametrar RequestLock .

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

  4. Ange egenskapen RequestTransfer till true.

  5. Skapa en InvokeMethodOptions objektinstans. I egenskapen Kontext lägger du till ett namn/värde-par. Namnet måste vara "ObjectLockContext" och värdet måste vara ett unikt värde, till exempel ett Guid. Lägg till ett annat namn/värde-par med "MachineName" och namnet på den dator som begär låset.

  6. Anropa InvokeMethod på instansen SMS_ObjectLock .

  7. 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 begärs ett explicit lås på en SMS_ConfigurationItem objektinstans.

 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-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 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