W tej notatce pokażę, jak naprawić błąd c Identyfikator zdarzenia 10016 ze źródła DistributedCOM na komputerze z systemem Windows 10 / Windows Server 2012 R2. Błąd DCOM 10016 jest dość powszechny zarówno w wersjach systemu Windows klienta i serwera, począwszy od systemu Windows XP i jest naprawiany w ten sam sposób, niezależnie od wersji systemu Windows.
Problem objawia się następująco: w dzienniku zdarzeń systemowych pojawia się następujący błąd podczas uruchamiania komputera lub próby uruchomienia / instalacji aplikacji:
Nazwa logowania: System
Źródło: DistributedCOM
Identyfikator zdarzenia: 10016
Poziom: Błąd
Użytkownik: SYSTEM
Opis: Ustawienia uprawnień specyficzne dla aplikacji nie dają uprawnień lokalnego uruchamiania dla aplikacji serwera COM z CLSID 1CCB96F4-B8AD-4B43-9688-B273F58E0910 i APPID AD65A69D-3831-40D7-9629-9B0B50A93843 NT AUTHORITY \ system z SID ( S-1-5-18) i adres LocalHost (przy użyciu LRPC). To uprawnienie bezpieczeństwa można zmienić za pomocą narzędzia do zarządzania usługami składowymi..
W angielskich wersjach systemu Windows opis błędu to:
Domyślne ustawienia uprawnień komputera nie udzielają uprawnień do aktywacji lokalnej dla aplikacji serwera COM z CLSID
000209FF-0000-0000-C000-000000000046 i APPID Niedostępne dla użytkownika IIS APPPOOL \ appIISPool SID (S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824) z adresu LocalHost (przy użyciu LRPC) działającego w kontener aplikacji Niedostępny SID (Niedostępny). To uprawnienie bezpieczeństwa można zmodyfikować za pomocą narzędzia administracyjnego Component Services.
Sądząc po opisie błędu: określony użytkownik (na przykład IIS Apppool) lub system (NT AUTHORITY \ system) próbuje uruchomić określony składnik COM przy użyciu infrastruktury DCOM i nie może tego zrobić z powodu braku prawa do Lokalnego startu lub Lokalnej aktywacji ( Lokalne zezwolenie na aktywację). Kod błędu zawiera tylko kody klas składnika COM i aplikacji. Spróbujmy ustalić, do której aplikacji należy ten identyfikator, i zapewnij uprawnienia niezbędne do jego uruchomienia.
Skopiuj CLSID i APPID z opisu zdarzenia. W moim przypadku tak jest
CLSID: 000209FF-0000-0000-C000-000000000046
APPID: AD65A69D-3831-40D7-9629-9B0B50A93843
(w niektórych przypadkach identyfikator aplikacji może nie zostać określony - APPID niedostępny).
Zwróć także uwagę na brakujące uprawnienia (zezwolenie na aktywację lokalną) i dla którego konta (NT AUTHORITY \ SYSTEM lub IIS APPPOOL \ appIISPool SID - S-1-5-82-3351576649-1006875745-771203599-42452693-1279824824).
W każdym przypadku identyfikatory klasy, aplikacji, konta i rodzaju dostępu mogą się różnić.- Uruchom edytor rejestru (regedit.exe);
- Przejdź do gałęzi rejestru odpowiadającej Twojemu CLSID. Mam to HKEY_CLASSES_ROOT \ CLSID \000209FF-0000-0000-C000-000000000046; W niektórych przypadkach należy także sprawdzić klucz rejestru [HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID \. Podczas zdalnego łączenia się z rejestrem, będzie on zlokalizowany w sekcji HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ AppID.
- Parametr klasy musi mieć nazwę. Mam tę aplikację Microsoft Word; Najczęściej ten problem występuje w przypadku składników:
Wciągająca skorupa
CLSID: C2F03A33-21F5-47FA-B4BB-156362A2F239
APPID: 316CDED5-E4AE-4B15-9113-7055D84DCC97
Broker środowiska wykonawczego
CLSID: D63B10C5-BB46-4990-A94F-E40B9D520160
APPID: 9CA88EE3-ACB7-47C8-AFC4-AB702511C276 - Kliknij klucz rejestru prawym przyciskiem myszy i wybierz Uprawnienia;
- Kliknij przycisk Zaawansowane
- W dziale Właściciel (Właściciel) zostanie wskazany NT Service \ TrustedInstaller lub System;
- Naciśnij przycisk Zmień i wprowadź nazwę konta administratora. Zapisz zmiany;
- Pamiętaj, że nazwa właściciela oddziału zmieniła się na Twoje konto. Połóż świt Zastąp właściciela subkontenerów i obiektów (Zastąp właściciela podkontenerów i obiektów) i kliknij „OK”;
- Na liście uprawnień dodaj konto administratora i zapewnij mu pełny dostęp (pełne uprawnienia);
- Przyznałeś uprawnienia do oddziału z CLSID. Teraz musisz powtórzyć poprzednie kroki, nadając koncie administratora prawa do oddziału z Twoim APPID na podstawie tekstu błędu (na przykład, HKEY_CLASSES_ROOT \ AppID \AD65A69D-3831-40D7-9629-9B0B50A93843;
- Teraz uruchom konsolę zarządzania komponentami dcomcnfg z uprawnieniami administratora (Panel sterowania \ Wszystkie elementy Panelu sterowania \ Narzędzia administracyjne \ Usługi składowe);
- W konsoli komponentów przejdź do gałęzi Usługi składowe -> Komputery -> Mój komputer -> Konfiguracja DCOM. Na liście komponentów znajdź nazwę komponentu zdefiniowanego w drugim kroku (wartość w kolumnie Identyfikator aplikacji powinna być zgodna z identyfikatorem CLSID po błędzie). Otwórz właściwości komponentu; Jeśli nie możesz znaleźć swojego komponentu na liście, prawdopodobnie masz 64-bitową wersję systemu Windows, a uruchomiony komponent jest 32-bitowy. W takim przypadku musisz uruchomić konsolę DCOM za pomocą polecenia:
mmc comexp.msc / 32
- Idź do zakładki Bezpieczeństwo. Wszystkie elementy sterujące muszą być edytowalne; Jeśli otworzysz konsolę dcomcnfg przed zmianą uprawnień w gałęzi rejestru, wszystkie ustawienia na karcie Zabezpieczenia zostaną zablokowane (nie można ich zmienić), mimo że konsolę uruchomiłeś jako administrator.
- W moim przypadku aplikacja nie miała wystarczających uprawnień do Lokalnej Zezwolenia na Aktywację. W dziale Uprawnienia do uruchamiania i aktywacji wybierz Dostosuj i kliknij przycisk Edytuj;
- Na liście dostępu musisz dodać konto, które nie posiadało uprawnień do uruchomienia. Nazwa konta została podana w tekście błędu: w zależności od tekstu w błędzie DCOM 10016 może to być System, określony użytkownik lub konto, na którym uruchamiana jest pula IIS (w tym przypadku musisz dodać dostęp do lokalnej grupy IIS_IUSR).Wskazówka. Jeśli w początkowym dzienniku błędów podano NT AUTHORITY \ NETWORK SERVICE zamiast NT AUTHORITY \ system, musisz przyznać lokalne uprawnienia do uruchamiania i aktywacji konta NetworkService.
- Udziel wymaganych uprawnień do konta. Na przykład aktywacja lokalna -> Zezwalaj i uruchamianie lokalne -> Zezwalaj;
- Uruchom ponownie komputer i sprawdź dzienniki zdarzeń. Błąd DCOM 10016 powinien zniknąć.