WMI'ye Veri Sağlama
WMI, Windows tarafından yönetilebilir nesneler hakkındaki verileriWMIsağlayıcıları aracılığıyla kullanılabilir hale getirir. Sağlayıcı, işlem gibi bir sistem bileşeninden veya SNMP veya IIS gibi izlemeli bir uygulamadan veri alır ve bu verileri WMI aracılığıyla bir yönetim uygulamasına geçirir. Örneğin, bir uygulama veya betik WMI Win32_Process sınıfını kullanarak işlem bilgilerini istediğinde, veriler önceden yüklenmiş bir sağlayıcı aracılığıyla dinamik olarak alınır.
Bu konuda aşağıdaki bölümler ele alınmıştır:
- Yönetilebilir Nesne için Model Oluşturma
- Yönetilebilir Bir Nesne için Model Uygulama
- Uygulanacak Sağlayıcı Türünü Belirleme
- Sağlayıcı için Barındırma (Uygulama) Modeli Belirleme
- bir sağlayıcı uygulamak
- WMI ve Sistem ile Sağlayıcı Kaydetme
- Bir Sağlayıcının Test Edilmesi
- İlgili konular
Yönetilebilir Nesne için Model Oluşturma
Sağlayıcı geliştirmeden önce WMI aracılığıyla kullanıma sunulacak yönetilebilir nesneyi temsil eden bir veri modeli oluşturun. Sağlayıcınız tarafından hangi veri nesnelerinin kullanıma sunulacaklarını planlayacaksınız. Örneğin, masaüstü arka planının ekran çözünürlüğünü yönetmeyi planlıyorsanız, Masaüstü'nü Yönetilen Nesne Biçimi (MOF) dosyasında modellemeye karar vermeniz gerekir.
Kullanışlı bir model oluşturmak için:
- Gerçek dünya senaryolarını belirleyin ve bir müşterinin yönetilebilir her nesne için okumak ve güncelleştirmek isteyebileceği bilgileri (örneğin, arka plan görüntüsünü değiştirme) modelleyin. Bunlar sınıf özelliklerinizdir.
- Bir müşterinin yönetilebilir her nesneyle ne tür eylemler gerçekleştirmek isteyebileceğini belirleyin. Bunlar sizin yöntemlerinizdir.
Yönetilebilir Bir Nesne için Model Uygulamak
Yönetilebilir nesnelere model uygulamak için, her nesneyi temsil eden WMI sınıfını içeren bir MOF dosyası oluşturun. WMI sınıflarını tanımlamak için MOF dosyası oluşturma hakkında daha fazla bilgi için bkz. Yönetilen Nesne Biçimi (MOF) Sınıfları Tasarlama. Sağlayıcının ve sınıflarının kaydı genellikle MOF dosyasına eklenir, ancak sınıflar ve yöntemler oluşturmak için COM API kullanmak mümkündür. Daha fazla bilgi için bkz. WMI Sağlayıcısı Geliştirme.
Not
Yönetilen nesnelere yönelik tüm WMI sınıf tanımlarınızın WMI deposuna geri yüklendiğinden emin olmak için WMI'nin bir hatası varsa ve yeniden başlatılırsa, Yönetilen Nesne Biçimi (MOF) dosyanızda #pragma otomatik kurtarma ön işlemci yönergesini kullanın.
MOF dosyasını oluşturduktan sonra Mofcomp.exe aracını kullanarak derleyin. Bu size MOF dosyanızdaki hataları bildirir ve sınıfın bir sağlayıcı tarafından kullanılabilmesi için MOF dosyasında tanımlanan WMI sınıfını WMI deposu ekler.
Uygulanacak Sağlayıcı Türünü Belirleme
WMI, sağlanan bilgilerin ve sağlayıcılar tarafından desteklenen işlemlerin niteliğini belirleyen belirli sayıda sağlayıcı türünü destekler.
Sağlayıcı türleri şunlardır:
- Örnek sağlayıcı
- Yöntemi sağlayıcısı
- Mülk/Hizmet sağlayıcısı
- Sınıf sağlayıcısı
- Olay sağlayıcısı
- Etkinlik tüketici sağlayıcısı
- İlişkilendirme sağlayıcısı
Sağlayıcıların büyük çoğunluğu örnek sağlayıcıları ve yöntem sağlayıcılarıdır. Örnek sağlayıcısı en yaygın sağlayıcıdır ve belirli bir sınıfın örneklerini sağlar. Yöntem sağlayıcısı bir veya daha fazla sınıfın yöntemlerini uygular. Sağlayıcı türleri hakkında daha fazla bilgi için bkz. WMI Sağlayıcısı geliştirme.
Sağlayıcı için Barındırma (Uygulama) Modeli Belirleme
WMI sağlayıcıları, COM nesneleri olarak uygulanan ikili dosyalardır. Bu, her sağlayıcının belirli bir işlem ve güvenlik bağlamında yürütülebilen bir DLL dosyası olduğu anlamına gelir. WMI, barındırma modeliolarak ifade eder. WMI, sağlayıcıları barındırmak için çeşitli yollar sunar, ancak en yaygın yaklaşım, NetworkServiceHost güvenlik bağlamında bağlı sağlayıcı modelini (WMI işlemi altında çalışan) kullanmaktır. WMI sağlayıcısı, bağlı veyabağımsız olarak sınıflandırılabilir.
Bağlı veya ayrılmış sağlayıcı terimi, sağlayıcının wmi tarafından sağlanan WMIPRVSE.EXE işlemiyle ilgili olarak hangi konak işlemini çalıştırdığını belirler. Sağlayıcının kullanıma sunup sunmadığı yönetim verilerinin ve bağlı olduğu API'nin veya uygulamanın sistemde her zaman kullanılabilir olup olmadığını belirlemek en iyi yöntemdir. Sağlayıcının bağlı olduğu API veya uygulama her zaman kullanılabilir durumdaysa (sistemde çalıştırılıyorsa), sağlayıcının bağlı bir sağlayıcı olması, değilse ayrılmış bir sağlayıcı olması gerekir. Barındırma modelleri hakkında daha fazla bilgi için bkz. Sağlayıcı Barındırma ve Güvenlik.
WMI'ye veri sağlamak için bir sağlayıcı yazma konusunda daha fazla bilgi için bkz. Sağlayıcıve bir uygulamaya ayrık bir sağlayıcı ekleme hakkında bilgi için bkz. Uygulamada Sağlayıcı Ekleme.
Bağlı sağlayıcılar işlem içinde (işlem içi) veya işlem dışında (işlem dışı) olarak tanımlanabilir. Bağlı sağlayıcı bir iç-proc sağlayıcı olduğunda, paylaşılan WMIPRVSE.EXE WMI barındırma sürecinin altında çalışır ve COM iç-proc sunucusu olarak uygulanır (.dll). Sağlayıcı proc dışı bir sağlayıcı olduğunda, bir istemci veya olay isteği üzerine WMI tarafından başlatılır, ancak ayrı bir işlem olarak çalışır ve yürütülebilir dosya (.exe) olarak uygulanır.
Bir Sağlayıcıyı Uygulama
Sağlayıcı aşağıdaki yollarla uygulanabilir:
Visual Studio'da ATL Sihirbazı'nı kullanma.
ATL Sihirbazı, bağlı bir sağlayıcı uygulayan sağlayıcı kodu oluşturur. ATL Sihirbazı'nı kullanırken, bir in-proc (.dll) veya out-of-proc (.exe) sağlayıcı çalışma zamanı modeli oluşturmak istediğinizi belirtebilirsiniz.
Sağlayıcınızı içerecek bir COM nesnesi tanımlama.
Sağlayıcı kodu C++ dilinde yazılır. Daha fazla bilgi için bkz. SağlayıcıYazarak WMI'ye Veri Sağlama.
Yönetilen kodu kullanarak bir sağlayıcı oluşturmak için .NET Framework'teki Microsoft.Management.Infrastructure ad alanındaki sınıfları kullanma. (System.Management.Instrumentation ad alanı artık desteklenmiyor.)
Bu işlem, ayrılmış bir sağlayıcı oluşturur.
WMI ve Sisteme Bir Sağlayıcıyı Kayıt Etmek
Bir tüketicinin sağlayıcısını kullanmadan önce, onu WMI sistemine ve Windows COM alt sistemine kaydetmek önemlidir.
MOF dosyası aynı sınıflar için birden çok sağlayıcı türü içerebilir. Aynı sağlayıcı adı, örneğin bir örnek veya yöntem sağlayıcısı olarak kaydedilir. Daha fazla bilgi için bkz. Sağlayıcı Kayıt İşlemi.
Sağlayıcıyı Test Etme
Sağlayıcı kodu kaydedildiğinde, farklı tüketicilerden (betikler, .NET yönetilen kodu ve C++ tüketicileri gibi) sağlayıcıyı kullanarak sağlayıcıyı düzgün bir şekilde test etmek önemlidir.
Sağlayıcınızı test etmek için aşağıdaki görevleri gerçekleştirin:
- MSFT_WmiProvider_OperationEvent olay bildirimlerini izleyerek sağlayıcınızın düzgün yüklendiğinden emin olun. Bu olaylar, sağlayıcı yükleme hataları hakkında sizi bilgilendirecektir. Yararlı olabilecek diğer sorun giderme sınıfları Win32_ProcessStartTrace ve Win32_ProcessStopTrace. Sorun giderme sağlayıcıları hakkında daha fazla bilgi için bkz. Hata Ayıklama Sağlayıcıları ve Sağlayıcı Yapılandırması ve Sorun Giderme Sınıfları.
- Sağlayıcı bir örnek veya yöntem sağlayıcısıysa, kod mantığınızı takip etme karışıklığını önlemek için her sağlayıcı özelliğini birer birer test ettiğinizden emin olun.
- Örnek sağlayıcısı için sağlayıcının her arabirimini çağıran bir istemci uygulaması veya betik oluşturun (numaralandırma, alma, koyma ve silme). Sağlayıcının herhangi bir şey uygulamaması gerekse bile, "desteklenmiyor" iletisi döndürmelidir. WMI Dönüş Kodlarıiçinde zaten tanımlanmış dönüş değerlerini bulabilirsiniz.
- İstenen güvenlik bağlamını planlandığı gibi çalıştığından emin olmak için yönetici olmayan bir güvenlik bağlamından sağlayıcı tarafından desteklenen işlemleri çağırın. Sağlayıcı kimliğe bürünme özelliğini desteklemelidir. Doğru güvenlik kimlik bilgileri olmayan bir kullanıcı verileri güncelleştirmeye veya bir yöntemi yürüten bir işlem gerçekleştirmeye çalışırsa, sağlayıcınız uygun hata iletisiyle erişimi reddetmelidir.
- Sağlayıcı güvenliği hakkında daha fazla bilgi için bkz. Sağlayıcınızın Güvenliğini Sağlama.
İlgili konular
-
Sağlayıcı Yazarak WMI'ye Veri Sağlama
-
WMI İstemci Uygulamaları Sorunlarını Giderme