Share via


SEDO-Enabled Nesnede Kilit Alma

SEDO özellikli bir Nesnede Açık Kilit Almak için

  1. WMI sınıfının bir örneğini SMS_ObjectLock oluşturma

  2. yöntemi için RequestLock yöntem parametreleri nesnesini alın.

  3. Kilitlemek istediğiniz nesnenin nesne yolunu özelliğine atayın ObjectRelPath .

  4. RequestTransfer özelliğini olarak trueayarlayın.

  5. Bir InvokeMethodOptions nesne örneği oluşturun. Context özelliğinde bir ad/değer çifti ekleyin. Adın "ObjectLockContext" olması ve değerin Guid gibi benzersiz bir değer olması gerekir. "MachineName" ile başka bir ad/değer çifti ve kilidi isteyen bilgisayarın adını ekleyin.

  6. Örnekte InvokeMethod'ı çağırın SMS_ObjectLock .

  7. InvokeMethod bir SMS_ObjectLockRequest örnek döndürür. İsteğin RequestState başarısı veya başarısızlığı hakkında daha fazla bilgi edinmek için ve LockState özelliklerini denetleyin.

Örnek

Aşağıdaki örnek, nesne örneğinde açık bir SMS_ConfigurationItem kilit istemektedir.

 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 nesnesi aşağıdaki özellikleri içerir:

Özellik Açıklama
Requestıd İsteğin benzersiz tanımlayıcısı.
ObjectRelPath Kilidin istendiği nesnenin yolu.
RequestState İsteğin başarısını veya başarısızlığını gösterir.
LockState İstenen kilidin geçerli durumunu gösterir.
AssignedUser İstenen kilidin şu anda atanmış olan kullanıcısını gösterir.
AssignedObjectLockContext Kilidin şu anda atandığı ObjectLockContext öğesini gösterir.
AssignedMachine İstenen kilidin şu anda atanmış olan bilgisayarını gösterir.
AssignedSiteCode İstenen kilidin şu anda sitesini gösterir.
AssignedTimeUTC İstenen kilidin atandığı saati gösterir.

RequestState
Aşağıdaki tabloda olası istek durumu değerleri görüntülenir. İstek durumları Granted, GrantedAfterTimeout ve GrantedLockWasOrphaned başarılı bir isteği gösterir ve kullanıcı nesnede değişiklik yapabilir ve kaydedebilir. Diğer tüm istekler hataya işaret eder.

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

LockState
Aşağıdaki tabloda olası kilit durumu değerleri görüntülenir.

LockStateID LockStateName
0 Atanma -mış
1 Atanan
2 İstendi
3 PendingAssignment
4 Zaman Aşımı
5 NotFound

Kodu Derleme

C# örneği şunları gerektirir:

Ad alanları

Sistem

System.Management

Derleme

Sağlam Programlama

Hata işleme hakkında daha fazla bilgi için bkz. Configuration Manager Hataları Hakkında.

Ayrıca Bkz

Configuration Manager SEDO