Windows'ta DistributedCOM Hatası 10016: Uygulamaya Özgü İzin Ayarları Yerel Etkinleştirme İzni Vermiyor


Bu gönderide, Windows 10 veya Windows Server 2012 R2 çalıştıran bir bilgisayarda DistributedCOM kaynağından EventID 10016 ile hatayı nasıl düzelteceğinizi göstereceğim. DCOM 10016 olayı, Windows XP'den başlayarak hem istemci hem de sunucu Windows sürümlerinde oldukça yaygındır ve Windows sürümünden bağımsız olarak bu hatayı aynı şekilde düzeltebilirsiniz.

Sorun kendini şu şekilde gösteriyor: Bilgisayar önyükleme yaptığında veya bazı uygulamaları başlatmaya veya yüklemeye çalıştığında Sistem bölümündeki Windows Olay Görüntüleyicisi'nde aşağıdaki hata görünüyor:

Günlük Adı: Sistem
Kaynak: DistributedCOM
Olay Kimliği: 10016
Seviye: Hata
Kullanıcı: SİSTEM
Açıklama: Makine varsayılan izin ayarları, CLSID'li COM Sunucusu uygulaması için Yerel Etkinleştirme izni vermiyor {000209FF-0000-0000-C000-000000000046} ve APPID Kullanıcı tarafından kullanılamıyor IIS APPPOOL ppIISPool SID (S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) adresinden LocalHost (LRPC kullanarak) çalışıyor uygulama kabı Kullanılamaz SID (Kullanılamaz). Bu güvenlik izni, Bileşen Hizmetleri yönetim aracı kullanılarak değiştirilebilir.

Hata açıklamasına göre: bazı kullanıcılar (örneğin, IIS Apppool) veya bir sistem (NT AUTHORITY\SYSTEM), DCOM altyapısını kullanarak bazı COM bileşenlerini başlatmaya çalışır ve “Local Launch” veya “Local Launch” eksik olduğundan bunu yapamaz. Aktivasyon” izni. Hata kodu, yalnızca COM bileşeni ve uygulama için sınıfların kodlarını içerir. Tanımlayıcının hangi uygulamaya ait olduğunu belirlemeye çalışalım ve başarıyla başlatmak ve etkinleştirmek için gerekli izinleri verelim.

Olay açıklamasından CLSID ve APPID'yi kopyalayın. Benim durumumda:

CLSID : {000209FF-0000-0000-C000-000000000046}
APPID: {AD65A69D-3831-40D7-9629-9B0B50A93843}

(bazı durumlarda, uygulama tanımlayıcısı belirtilmemiş olabilir - APPID Kullanılamaz).

Ayrıca hangi izinlerin eksik olduğuna (Yerel Etkinleştirme izni) ve hangi hesap için (NT AUTHORITY\SYSTEM veya IIS APPPOOL ppIISPool SID — S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) dikkat edin.

Her durumda sınıf, uygulama, hesap tanımlayıcıları ve erişim türü farklılık gösterebilir.

  1. Kayıt Defteri Düzenleyicisini çalıştırın (regedit.exe);

  2. CLSID'nize karşılık gelen kayıt defteri anahtarına gidin. Benim durumumda HKEY_CLASSES_ROOT\CLSID\{000209FF-0000-0000-C000-000000000046};

    Bazı durumlarda, HKEY_CLASSES_ROOT\Wow6432Node\CLSID\ kayıt defteri anahtarını da kontrol etmeniz gerekir. Kayıt defterine uzaktan bağlandığınızda, HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AppID kayıt defteri bölümünde yer alacaktır.

  3. class parametresinde uygulama adı belirtilmelidir (benim durumumda bu Microsoft Word Uygulamasıdır);

    Çoğu zaman DCOM hatası 10016 aşağıdaki bileşenlerle oluşur:

    Immersive Shell
    CLSID: {C2F03A33-21F5-47FA-B4BB-156362A2F239}
    APPID: {316CDED5-E4AE-4B15-9113-7055D84DCC97}
    RuntimeBroker
    CLSID: {D63B10C5-BB46-4990-A94F-E40B9D520160}
    APPID : {9CA88EE3-ACB7-47C8-AFC4-AB702511C276}

  4. Kayıt defteri anahtarına sağ tıklayın ve İzinler'i seçin;

  5. Gelişmiş düğmesini tıklayın;

  6. NT Service\TrustedInstaller veya SYSTEM, Sahip bölümünde belirtilecektir;

  7. Değiştir düğmesini tıklayın ve yönetici hesabınızın adını belirtin. Değişiklikleri kaydedin;

  8. Geçerli kayıt defteri anahtarı sahibinin adının sizin hesabınız olarak değiştiğini lütfen unutmayın. Alt kapsayıcılar ve nesnelerde sahibi değiştir kutusunu işaretleyin ve "Tamam"ı tıklayın;

  9. Yönetici hesabınızı izinler listesine ekleyin ve ona Tam Denetim izinleri verin;

  10. Kayıt defteri anahtarına CLSID ile izinler verdiniz. Şimdi önceki adımları tekrarlamanız ve yönetici için sahiplik ve izinleri değiştirmeniz gerekiyor. hata açıklamasından APPID'nizin kayıt defteri anahtarındaki hesap (örneğin, HKEY_CLASSES_ROOT\AppID\{AD65A69D-3831-40D7-9629-9B0B50A93843});

  11. Şimdi bileşen yönetim konsolunu (dcomcnfg) yönetici olarak çalıştırın (Denetim Masası -> Tüm Kontrol Paneli Öğeleri -> Yönetimsel Araçlar -> Bileşen Hizmetleri);

  12. Bileşen konsolunda Bileşen Hizmetleri -> Bilgisayarlar -> Bilgisayarım -> DCOM Config bölümüne gidin. COM bileşen listesinde, ikinci adımda tanımladığınız bileşenin adını bulun (Uygulama Kimliği sütunundaki değer, DCOM 10016 hata açıklamasındaki CLSID'nizle eşleşmelidir);

    Bileşeninizi listede bulamıyorsanız, muhtemelen Windows'un 64 bit sürümünü kullanıyorsunuzdur ve çalıştırmak istediğiniz bileşen 32 bit'tir. Bu durumda, DCOM konsolunu şu komutu kullanarak başlatmanız gerekir:

    mmc comexp.msc /32
  13. Güvenlik sekmesini tıklayın. Tüm form kontrollerinin değiştirilerek erişilebilir olması;

    Bileşen kayıt defteri anahtarındaki izinleri değiştirmeden önce dcomcnfg konsolunu açarsanız, konsolu yönetici olarak başlatmış olmanıza rağmen Güvenlik sekmesindeki tüm ayarlar kilitlenir (değiştirilemez).

  14. Benim durumumda, uygulamanın Yerel Aktivasyon izni yoktu. Başlatma ve Etkinleştirme İzinleri bölümünde, Özelleştir'i seçin ve Düzenle düğmesini tıklayın;

  15. Hata açıklamasında belirtilen bir hesabı ACL'ye eklemeniz gerekir. DCOM 10016 hatasındaki metne bağlı olarak bu, SYSTEM, belirli bir kullanıcı veya IIS havuzunun altında çalıştığı hesap olabilir (bu durumda, yerel IIS_IUSR grubu için erişim eklemeniz gerekir);

    İlk hatada NT AUTHORITY\SYSTEM yerine NT AUTHORITY\NETWORK SERVICE belirtildiyse, NetworkService hesabı için yerel başlatma ve etkinleştirme izinlerini atamanız gerekir.

  16. Hesap için gerekli izinleri verin. Örneğin, Yerel Başlatma=İzin Ver ve Yerel Aktivasyon=İzin Ver.

  17. Bilgisayarı yeniden başlatın ve olay günlüklerini kontrol edin. DCOM 10016 hatası ortadan kalkmalıdır.

İlgili makaleler