Aracılığıyla paylaş


Sağlayıcı Barındırma ve Güvenlik

sağlayıcınızı temsil eden __Win32Provider örneğindeki HostingModel özelliği sağlayıcı barındırma modelini belirtir. Bu özelliğin ayarlanması, sağlayıcının belirtilen ayrıcalık düzeyine sahip paylaşılan bir konak işlemine yüklenmesine neden olur.

Paylaşılan Sağlayıcı Ana Bilgisayar İşlemi

WMI, diğer birkaç hizmetle paylaşılan bir hizmet ana bilgisayarında bulunur. Sağlayıcı başarısız olduğunda tüm hizmetlerin durdurulmasını önlemek için sağlayıcılar "Wmiprvse.exe" adlı ayrı bir ana bilgisayar işlemine yüklenir. Bu ada sahip birden fazla işlem çalışıyor olabilir. Her bir hesap farklı bir hesapta farklı güvenlikle çalıştırılabilir. Windows Vista'dan başlayarak winmgmt komutunu kullanarak WMI'yi sabit bir bağlantı noktası kullanarak ayrı bir işlemde çalıştırdığını unutmayın. Daha fazla bilgi için bkz. Vistaile Başlayarak WMI'ye Uzaktan Bağlanma.

Paylaşılan ana bilgisayar, Wmiprvse.exe bir konak işleminde aşağıdaki sistem hesaplarından biri altında çalıştırılabilir:

Sağlayıcı, wmi sağlayıcı konağı gerektirmeyen yerel bir COM sunucusu (.exe) veya şirket içinde barındırılan bir sunucu da olabilir.

Barındırma Modelini Ayarlama

LocalSystem ayrıcalıklı bir hesap olduğundan, bir sağlayıcı Wmiprvse.exe işlemde çalışırken NetworkServiceHostHostingModel ayarlamanız önerilir. NetworkServiceHost hesabı, kapsamlı ayrıcalıklar gerektirmeyen ancak diğer sistemlerle uzaktan iletişim kurması gereken hizmetler içindir.

HostingModel özelliği için bir değer ayarlamazsanız WMI, NetworkServiceHostOrSelfHostvarsayılan değerini ayarlar. HostingModel değeri LocalSystemHostolarak ayarlanırsa WMI, Windows Olay Günlüğü'nde 5603 ve 5604 olaylarını oluşturmak için izlemeyi kullanır. Yerel LocalSystem hesabı yüksek ayrıcalıklı olduğundan, bu ayar önerilmez. Bu olayları Olay Görüntüleyicisigörüntüleyebilirsiniz. Daha fazla bilgi için bkz. wmi etkinlik izleme.

Ayrılmış sağlayıcılar için HostingModel özelliğini "Ayrılmış:Com" olarak ayarlayın. .NET Framework'te Microsoft.Management.Infrastructure izleme sınıfları eklenerek oluşturulan sağlayıcılar ayrılmış sağlayıcılardır. (System.Management.Instrumentation artık desteklenmiyor.) Ayrılmış sağlayıcı oluşturma hakkında daha fazla bilgi için bkz. Bir UygulamaSağlayıcı Ekleme.

Barındırma modeli, sağlayıcınızı temsil eden __Win32Provider örneğindeki HostingModel özelliğinde belirtilir.

Sağlayıcı için barındırma modelini ayarlamak için

  1. Sağlayıcınızı tanımlayan MOF dosyasında bir __Win32Providerörneği oluşturun.

  2. Name özelliğinde sağlayıcıya bir ad atayın ve sağlayıcı COM nesnesinin sınıf tanımlayıcısını (CLSID) Clsid özelliğine atayın.

    Aşağıdaki kod örneği, Name özelliğine ve sağlayıcı COM nesnesinin CSLID'sine Clsid özelliğine bir ad atar.

    Instance of __Win32Provider as $NewProvider
    {
        Name = "MyProvider";
        Clsid = "{.......}";
    }
    
  3. HostingModel özelliğine uygun paylaşılan konak değerini atayın. "NetworkServiceHost" gibi paylaşılan konak değerleri, MSFT_Providers sınıfının HostingSpecification özelliğinde tanımlanır.

    Aşağıdaki kod örneği, HostingModel özelliğine paylaşılan bir konak değeri atar.

    HostingModel = "NetworkServiceHost";
    

Aşağıdaki kod örneği, NetworkServiceHost'ta bir sağlayıcının nasıl kaydedileceklerini gösterir.

Instance of __Win32Provider as $NewProvider
{
    Name = "MyProvider";
    Clsid = "{.......}";
    HostingModel = "NetworkServiceHost";
}

Birden çok sağlayıcınız varsa, sağlayıcınızı belirli bir örnekte bulunması için kaydederek bunları belirli bir hizmet konağı olarak gruplandırabilirsiniz.

Aşağıdaki kod örneği, NetworkServiceHost'ta bir sağlayıcıyı da kaydeder. MSFT_Providers sınıfı, __Win32ProviderHostingModel özelliğini oluşturmak için birleştirilen iki değerin değerlerini tanımlar. Örnekte, "NetworkServiceHost" değeri MSFT_ProvidersHostingSpecification özelliğinden, "LocalServiceHost" ise HostingGroup özelliğinden gelir.

Instance of __Win32Provider as $NewProvider
{
    Name = "MyProvider";
    Clsid = "{.......}";
    HostingModel = "NetworkServiceHost:MySharedHost";
}

Ayrıştırılmamış ve Wmiprvse işleminde barındırılan sağlayıcılar için özel geliştirme sorunları vardır. Daha fazla bilgi için bkz. hata ayıklama sağlayıcıları .

Özellik veya sınıf sağlayıcısı kaydı içeren bir sağlayıcı yazıyorsanız, tüm iş parçacığı oluşturma modelleri çalışmaz. Daha fazla bilgi için bkz. doğru kayıt seçme.

In-Process Sağlayıcıları için HostingModel Değerleri

Aşağıdaki listede, Wmiprvse.exe bir işlemde çalışan sağlayıcılar için __Win32Provider örneğinde kullanılacak sağlayıcı barındırma modeli değerleri listelenmiştir.

__Win32Provider.HostingModel değeri Açıklama
SelfHost Sağlayıcı, işlem içi yerine yerel sunucu uygulamasını kullanmaya başlar. Sağlayıcının çalıştığı işlemin güvenlik bağlamı, sağlayıcı güvenlik bağlamını belirler.
LocalSystemHost Sağlayıcı, işlemde olarak uygulanırsa, LocalSystem bağlamı altında çalışan paylaşılan bir sağlayıcı konağına yüklenir. Windows Vista'dan başlayarak, bir WMI sağlayıcısının HostingModel (__Win32Provider.HostingModel özelliği) belirtilmemişse LocalSystemHost artık varsayılan barındırma modeli değildir. Daha fazla bilgi için bkz. Barındırma Modellerinin Güvenliği.
LocalSystemHostOrSelfHost Sağlayıcı şirket içinde barındırılır veya LocalSystem hesabı altında çalışan Wmiprvse.exe işlemine yüklenir. LocalSystem yüksek ayrıcalıklı bir hesap olduğundan, Güvenlik NT Olay Günlüğü'nde bu güvenilen durumda çalışan bir sağlayıcıyı yöneticilere bildirmek için bir girdi oluşturulur.
NetworkServiceHost Sağlayıcı, işlemde olarak uygulanırsa, NetworkService hesabı altında çalışan Wmiprvse.exe işlemine yüklenir. Windows Vista'dan başlayarak, bir WMI sağlayıcısının HostingModel (__Win32Provider.HostingModel özelliği) belirtilmemişse bu varsayılan barındırma modelidir. Daha fazla bilgi için bkz. Barındırma Modellerinin Güvenliği.
NetworkServiceHost sınırlı ayrıcalıklara sahiptir ve bu nedenle ayrıcalık yükseltme saldırısı olasılığını azaltır. Sağlayıcı yalnızca yerel bilgisayarda çalıştırıyorsa, HostingModel özelliğini LocalServiceHostolarak ayarlayın.
NetworkServiceHostOrSelfHost Sağlayıcı şirket içinde barındırılır veya NetworkService hesabı altında çalışan WmiPrvse.exe işlemine yüklenir. NetworkServiceHostOrSelfHost, __Win32ProviderHostingModel özelliği NULL olduğunda varsayılan yapılandırmadır. NetworkServiceHostOrSelfHost varsayılan olduğundan, önceki işletim sistemlerindeki sağlayıcılar Windows Vista, Windows Server 2008 ve sonraki işletim sistemlerinde çalışmaya devam edebilir.
LocalServiceHost Sağlayıcı, işlemde olarak uygulanırsa, LocalService hesabı altında çalışan Wmiprvse.exe işlemine yüklenir. LocalService'in sınırlı ayrıcalıklara sahip olması nedeniyle hizmetler için önerilen barındırma modeli budur.

Ayrılmış Sağlayıcılar için HostingModel Değerleri

Aşağıdaki listede, ayrılmış sağlayıcılar için sağlayıcı barındırma modeli değerleri listelenir.

Ayrılmış:Com

Sağlayıcı, WMI istemcisi olan ayrı bir işlemde barındırılan ayrılmış bir sağlayıcıdır.

Aşağıdaki örnekte, sağlayıcının istemcinin kimliğine bürünmesini sağlayan HostingModel özelliğinin FALSE olarak ayarlandığı FoldIdentity tanımlayıcısı gösterilmektedir.

Decoupled:Com:FoldIdentity(FALSE)

FoldIdentity belirtilmezse FoldIdentity değeri varsayılan olarak TRUE olarak ayarlanır. Güvenlik nedeniyle, Temsilci kimliğine bürünme özelliğine sahip sahte bir uygulama etki alanının tamamını etkileyebileceği için FoldIdentity(FALSE) belirtmemenizi öneririz.

Aşağıdaki örnekte, FoldIdentity(TRUE) ayarına eşdeğer önerilen şekilde ayarlanan HostingModel özelliği gösterilmektedir.

Decoupled:Com

Ayrılmış:Noncom

Yalnızca dahili kullanım için. Desteklenmez.

Barındırma Modellerinin Güvenliği

Çoğu durumda LocalSystem gereksizdir ve NetworkServiceHost bağlamı daha uygundur. Çoğu WMI Sağlayıcısı, WMI istemcisi adına istenen işlemleri gerçekleştirmek için istemci güvenlik bağlamının kimliğine bürünmelidir. Windows Vista'dan başlayarak, barındırma modeli tanımı olmayan ve LocalSystem altında çalışıyor gibi yürütülen bir WMI sağlayıcısı düzgün çalışmaz. Bu durumu düzeltmek için beklenen barındırma modelini değiştirin ve WMI sağlayıcısı kodunun WMI istemcisinin kimliğine bürünerek işlemleri istemci güvenlik bağlamında gerçekleştirdiğinden emin olun. LocalSystem nadiren bir gereksinimdir. Sağlayıcınızın bu ayrıcalık düzeyine sahip olması gerekiyorsa, MOF dosyasında aşağıdaki deyimle barındırma modelini belirtin.

HostingModel=LocalSystemHost

Doğru kayıt seçmeyi

WMI Ad Alanlarına erişim

WMI Ad Alanlarının Güvenliğini Sağlama

Sağlayıcı Yapılandırması ve Sorun Giderme Sınıfları

MSFT_Providers

WMI Güvenlik Bakımını