Come rilasciare un blocco su un oggetto SEDO-Enabled

Per rilasciare un blocco esplicito su un oggetto abilitato per SEDO

  1. Creare un'istanza della SMS_ObjectLock classe WMI

  2. Ottiene l'oggetto parametri del metodo per il ReleaseLock metodo.

  3. Assegnare il percorso dell'oggetto da sbloccare alla ObjectRelPath proprietà .

  4. Creare un'istanza dell'oggetto InvokeMethodOptions . Nella proprietà Context aggiungere una coppia nome/valore. Il nome deve essere "MachineName" e il valore deve essere il nome del computer che rilascia il blocco. Per altre informazioni, vedere Come acquisire un blocco su un oggetto SEDO-Enabled

  5. Chiamare InvokeMethod nell'istanza SMS_ObjectLock di .

  6. InvokeMethod restituirà un'istanza SMS_ObjectLockRequest di . Controllare le RequestState proprietà e LockState per ottenere altre informazioni sull'esito positivo o negativo della richiesta.

Esempio

Nell'esempio seguente viene rilasciato un blocco su un'istanza di oggetto SMS_ConfigurationItem .

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

    }  
}  

L'oggetto SMS_ObjectLockRequest contiene le proprietà seguenti:

Proprietà Descrizione
Requestid Identificatore univoco della richiesta.
ObjectRelPath Percorso dell'oggetto per cui viene richiesto il blocco.
RequestState Indica l'esito positivo o negativo della richiesta.
LockState Indica lo stato corrente del blocco richiesto.
AssignedUser Indica l'utente attualmente assegnato del blocco richiesto.
AssignedObjectLockContext Indica ObjectLockContext a cui è attualmente assegnato il blocco.
AssignedMachine Indica il computer attualmente assegnato del blocco richiesto.
AssignedSiteCode Indica il sito corrente del blocco richiesto.
AssignedTimeUTC Indica l'ora in cui è stato assegnato il blocco richiesto.

RequestState
Nella tabella seguente vengono visualizzati i valori possibili dello stato della richiesta. Gli stati della richiesta Granted, GrantedAfterTimeout e GrantedLockWasOrphaned indicano una richiesta riuscita e l'utente può quindi apportare e salvare modifiche all'oggetto. Tutte le altre richieste indicano un errore.

RequestStateID RequestStateName
0 Unknown
2 Richiesto
3 RequestedCanceled
4 ResponseReceived
10 Concesso
11 GrantedAfterTimeout
12 GrantedLockWasOrphaned
20 DeniedLockAlreadyAssigned
21 DeniedInvalidObjectVersion
22 DeniedLockNotFound
23 DeniedLockNotLocal
24 DeniedRequestTimedOut
50 Error
52 ErrorRequestNotFound
53 ErrorRequestTimedOut

LockState
Nella tabella seguente vengono visualizzati i valori possibili dello stato di blocco.

LockStateID LockStateName
0 Nessuno
1 Assegnate
2 Richiesto
3 PendingAssignment
4 TimedOut
5 Notfound

Compilazione del codice

L'esempio C# richiede:

Namespaces

Sistema

System.Management

Assembly

Programmazione efficiente

Per altre informazioni sulla gestione degli errori, vedere Informazioni sugli errori di Configuration Manager.

Vedere anche

Configuration Manager SEDO