SEDO-Enabled Nesnede Kilit Alma
SEDO özellikli bir Nesnede Açık Kilit Almak için
WMI sınıfının bir örneğini
SMS_ObjectLock
oluşturmayöntemi için
RequestLock
yöntem parametreleri nesnesini alın.Kilitlemek istediğiniz nesnenin nesne yolunu özelliğine atayın
ObjectRelPath
.RequestTransfer
özelliğini olaraktrue
ayarlayın.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.Örnekte InvokeMethod'ı çağırın
SMS_ObjectLock
.InvokeMethod bir
SMS_ObjectLockRequest
örnek döndürür. İsteğinRequestState
başarısı veya başarısızlığı hakkında daha fazla bilgi edinmek için veLockState
ö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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin