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
Skapa en instans av
SMS_ObjectLock
WMI-klassenHämta metodens metodparametrar
RequestLock
.Tilldela objektsökvägen för det objekt som du vill låsa till
ObjectRelPath
egenskapen .Ange egenskapen
RequestTransfer
tilltrue
.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.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 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.