Udostępnij za pośrednictwem


Jak uzyskać blokadę obiektu SEDO-Enabled

Aby uzyskać jawną blokadę obiektu z włączoną funkcją SEDO

  1. Tworzenie wystąpienia SMS_ObjectLock klasy WMI

  2. Pobierz obiekt parametrów metody dla RequestLock metody .

  3. Przypisz ścieżkę obiektu, który chcesz zablokować do ObjectRelPath właściwości.

  4. Ustaw właściwość RequestTransfer na true.

  5. Utwórz wystąpienie obiektu InvokeMethodOptions . We właściwości Kontekst dodaj parę nazwa/wartość. Nazwa musi być "ObjectLockContext", a wartość musi być unikatową wartością, taką jak identyfikator Guid. Dodaj inną parę nazw/wartości z ciągiem "MachineName" i nazwą komputera żądającego blokady.

  6. Wywołaj metodę InvokeMethod w wystąpieniuSMS_ObjectLock.

  7. InvokeMethod zwróci wystąpienieSMS_ObjectLockRequest. Sprawdź właściwości iLockState, RequestState aby uzyskać więcej informacji na temat powodzenia lub niepowodzenia żądania.

Przykład

Poniższy przykład żąda jawnej blokady wystąpienia obiektu SMS_ConfigurationItem .

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

     }  
}  

Obiekt SMS_ObjectLockRequest zawiera następujące właściwości:

Właściwość Opis
Requestid Unikatowy identyfikator żądania.
ObjectRelPath Ścieżka obiektu, dla którego jest żądana blokada.
RequestState Wskazuje powodzenie lub niepowodzenie żądania.
LockState Wskazuje bieżący stan żądanej blokady.
AssignedUser Wskazuje aktualnie przypisanego użytkownika żądanej blokady.
AssignedObjectLockContext Wskazuje objectlockcontext blokady jest obecnie przypisany do.
AssignedMachine Wskazuje aktualnie przypisany komputer żądanej blokady.
AssignedSiteCode Wskazuje obecnie lokację żądanej blokady.
AssignedTimeUTC Wskazuje czas przypisania żądanej blokady.

RequestState
W poniższej tabeli przedstawiono możliwe wartości stanu żądania. Stany żądania Granted, GrantedAfterTimeout i GrantedLockWasOrphaned wskazują pomyślne żądanie, a użytkownik może następnie wprowadzić i zapisać modyfikacje obiektu. Wszystkie inne żądania wskazują błąd.

RequestStateID RequestStateName
0 Unknown
2 Zlecone
3 RequestedCanceled
4 OdpowiedźReceived
10 Przyznane
11 GrantedAfterTimeout
12 GrantedLockWasOrphaned
20 DeniedLockAlreadyAssigned
21 DeniedInvalidObjectVersion
22 DeniedLockNotFound
23 DeniedLockNotLocal
24 DeniedRequestTimedOut
50 Error
52 ErrorRequestNotFound
53 ErrorRequestTimedOut

LockState
W poniższej tabeli przedstawiono możliwe wartości stanu blokady.

LockStateID LockStateName
0 Nieprzypisane
1 Przypisane
2 Zlecone
3 PendingAssignment
4 Limit czasu
5 Notfound

Kompilowanie kodu

Przykład języka C# wymaga:

Obszary nazw

System

System.Management

Zestawu

Niezawodne programowanie

Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.

Zobacz też

Configuration Manager SEDO