Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Så här släpper du ett explicit lås på ett SEDO-aktiverat objekt
Skapa en instans av
SMS_ObjectLockWMI-klassenHämta metodens metodparametrar
ReleaseLock.Tilldela objektsökvägen för det objekt som du vill låsa upp till egenskapen
ObjectRelPath.Skapa en
InvokeMethodOptionsobjektinstans. 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_ObjectLockRequestinstans.RequestStateKontrollera egenskaperna ochLockStatefö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.