Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
So heben Sie eine explizite Sperre für ein SEDO-fähiges Objekt auf
Erstellen einer Instance der
SMS_ObjectLockWMI-KlasseRufen Sie das Parameterobjekt der Methode für die
ReleaseLockMethode ab.Weisen Sie den Objektpfad des Objekts, das Sie entsperren möchten, der
ObjectRelPathEigenschaft zu.Erstellen Sie eine
InvokeMethodOptionsObjekt-instance. Fügen Sie in der Context-Eigenschaft ein Name/Wert-Paar hinzu. Der Name muss "MachineName" sein und der Wert muss der Name des Computers sein, der die Sperre aufhebt. Weitere Informationen finden Sie unter Erwerben einer Sperre für ein SEDO-Enabled ObjektRufen Sie InvokeMethod für die
SMS_ObjectLockInstance auf.InvokeMethod gibt eine
SMS_ObjectLockRequestInstance zurück. Überprüfen Sie dieRequestStateLockStateund-Eigenschaften, um weitere Informationen über den Erfolg oder Misserfolg der Anforderung zu erhalten.
Beispiel
Das folgende Beispiel hebt eine Sperre für eine SMS_ConfigurationItem Object instance auf.
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);
}
}
Das SMS_ObjectLockRequest-Objekt enthält die folgenden Eigenschaften:
| Eigenschaft | Beschreibung |
|---|---|
| Anforderungs-ID | Eindeutiger Bezeichner der Anforderung. |
| ObjectRelPath | Der Pfad des Objekts, für das die Sperre angefordert wird. |
| RequestState | Gibt den Erfolg oder Misserfolg der Anforderung an. |
| LockState | Gibt den aktuellen Status der angeforderten Sperre an. |
| Zugewiesener Benutzer | Gibt den aktuell zugewiesenen Benutzer der angeforderten Sperre an. |
| AssignedObjectLockContext | Gibt ObjectLockContext an, dem die Sperre derzeit zugewiesen ist. |
| AssignedMachine | Gibt den aktuell zugewiesenen Computer der angeforderten Sperre an. |
| AssignedSiteCode | Gibt die aktuelle Site der angeforderten Sperre an. |
| AssignedTimeUTC | Gibt den Zeitpunkt an, zu dem die angeforderte Sperre zugewiesen wurde. |
RequestState In der folgenden Tabelle werden die möglichen Anforderungszustandswerte angezeigt. Die Anforderungszustände "Granted", "GrantedAfterTimeout" und "GrantedLockWasOrphaned" weisen auf eine erfolgreiche Anforderung hin, und der Benutzer kann dann Änderungen am Objekt vornehmen und speichern. Alle anderen Anforderungen weisen auf einen Fehler hin.
| RequestStateID | RequestStateName |
|---|---|
| 0 | Unbekannt |
| 2 | Angefordert |
| 3 | RequestedCanceled |
| 4 | ResponseReceived |
| 10 | Gewährt |
| 11 | GrantedAfterTimeout |
| 12 | GrantedLockWasOrphaned |
| 20 | DeniedLockAlreadyAssigned |
| 21 | DeniedInvalidObjectVersion |
| 22 | DeniedLockNotFound |
| 23 | DeniedLockNotLocal |
| 24 | DeniedRequestTimedOut |
| 50 | Fehler |
| 52 | ErrorRequestNotFound |
| 53 | ErrorRequestTimedOut |
LockState In der folgenden Tabelle werden die möglichen Sperrzustandswerte angezeigt.
| LockStateID | LockStateName |
|---|---|
| 0 | Nicht zugewiesen |
| 1 | Zugewiesen |
| 2 | Angefordert |
| 3 | PendingAssignment |
| 4 | TimedOut |
| 5 | NotFound |
Kompilieren des Codes
Das C#-Beispiel erfordert:
Namespaces
System
System.Management
Assembly
Robuste Programmierung
Weitere Informationen zur Fehlerbehandlung finden Sie unter Informationen zu Configuration Manager-Fehlern.