Niedawno na moim komputerze z systemem Windows 8.1 nie wiadomo skąd zacząłem otrzymywać błędy w dzienniku zdarzeń po zainstalowaniu aktualizacji we wtorek z poprawkami. Błąd był związany z Distributed COM (DCOM):
co widzisz, gdy ktoś blokuje Cię na facebooku?
Ustawienia uprawnień specyficzne dla aplikacji nie przyznają uprawnienia Lokalna aktywacja aplikacji COM Server z CLSID {9E175B6D-F52A-11D8-B9A5-505054503030} i APPID {9E175B9C-F52A-11D8-B9A5-505054503030} użytkownikowi PCNAME Username SID S-1-5-21-81864976-3388411891-1937036257-1001 z adresu LocalHost (przy użyciu LRPC) działającego w kontenerze aplikacji Unavailable SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804- 1277922394). To uprawnienie zabezpieczeń można zmodyfikować za pomocą narzędzia administracyjnego usług składowych.
Taki skomplikowany błąd może spowodować frustrację niedoświadczonych użytkowników. Nie znają tej terminologii. Ponadto rozwiązywanie problemów z błędami DCOM jest uciążliwe, więc na początku je zignorowałem, ale dziennik zdarzeń był ich pełen, ponieważ zdarzały się co godzinę. Zdeterminowany, aby to naprawić, postanowiłem to zbadać.
Reklama
Dla tych z Was, którzy nie wiedzą, COM to stara, zorientowana obiektowo technologia komunikacji międzyprocesowej firmy Microsoft. Serwer COM to plik wykonywalny (EXE lub DLL), który implementuje zestaw obiektów COM. Wiele składników systemu Windows jest zaimplementowanych jako obiekty COM i przestrzega standardowych reguł COM, aby komunikować się ze sobą. Serwery COM są zarejestrowane w rejestrze i mają identyfikator klasy (CLSID) i identyfikator APPID.
Pierwszym krokiem do rozwiązania tego błędu było ustalenie, z którym składnikiem DCOM są powiązane identyfikatory CLSID i APPID. Więc uruchom Edytor rejestru i przejdź do tego klucza rejestru:
HKEY_CLASSES_ROOT CLSID {9E175B6D-F52A-11D8-B9A5-505054503030}
Ten klucz rejestru wskazuje również ten sam identyfikator aplikacji, co komunikat o błędzie, czyli {9E175B9C-F52A-11D8-B9A5-505054503030}. Więc przejdź do
HKCR APPID {9E175B9C-F52A-11D8-B9A5-505054503030}
To powiedziało mi, że składnikiem był WSearch (obiekt COM Windows Search).
Następnym krokiem było przypisanie do tego CLSID / AppID, odpowiednich lokalnych uprawnień aktywacyjnych, których potrzebował - mojego identyfikatora bezpieczeństwa użytkownika (SID) i identyfikatora SID aplikacji. Aby to zrobić, system Windows udostępnia narzędzie Component Services, które pozwala użytkownikowi modyfikować uprawnienia do uruchamiania i aktywacji, uprawnienia dostępu i uprawnienia konfiguracyjne na serwerach COM.
Otwórz Narzędzia administracyjne -> Usługi składowe. Rozwiń Usługi składowe -> Komputer -> Mój komputer -> Konfiguracja DCOM. Znajdź „WSearch” i kliknij go prawym przyciskiem myszy -> Właściwości. Przejdź do zakładki „Bezpieczeństwo”.
Po wykonaniu tej czynności zobaczyłem, że wszystko jest wyszarzone (wyłączone) na karcie Zabezpieczenia dla tego obiektu COM, więc najpierw musiałem nadać mojemu kontu użytkownika pełne uprawnienia w rejestrze. Otworzyłem ponownie Regedit i poszedłem do tego samego klucza
HKEY_CLASSES_ROOT AppID {9E175B9C-F52A-11D8-B9A5-505054503030}
i zmienił uprawnienia. Najpierw musisz przejąć na własność (zaznacz „Zastąp właściciela podkontenerów i obiektów”), a następnie dodaj swoją nazwę użytkownika i nadaj jej pełną kontrolę. Następnie możesz zmienić własność z powrotem na oryginalne konto (NT Service TrustedInstaller).
Przejęcie własności i nadanie uprawnień administratora jest niezwykle łatwe dzięki Winaero RegOwnershipEx aplikacja.
Teraz ponownie otworzyłem Component Services (Dcomcnfg.exe) i przeszedłem do właściwości WSearch, zakładka Bezpieczeństwo i mogłem teraz edytować uprawnienia bezpieczeństwa dotyczące uprawnień do uruchamiania i aktywacji, które są wyświetlane w następujący sposób:
Poprzez grupę zabezpieczeń Wszyscy, moje konto użytkownika ma już uprawnienia do aktywacji lokalnej, ale są też wyświetlane 3 inne identyfikatory SID, które nie są znanymi kontami użytkowników ani grupami, jak wskazuje ich ikona. Są to identyfikatory SID aplikacji i odnoszą się do aplikacji. Błąd dziennika zdarzeń zawierał również komunikat „... uruchomiony w kontenerze aplikacji Niedostępny identyfikator SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394).
Wydaje się, że teraz interfejs selektora obiektów systemu Windows nie pozwala na dodawanie identyfikatorów SID aplikacji dla obiektów zabezpieczeń. Po kliknięciu Dodaj kliknąłem Zaawansowane ..., a następnie Znajdź teraz. Spowoduje to wyświetlenie wszystkich obiektów. Ale większość z nich to identyfikatory SID kont. Zauważyłem „WSZYSTKIE PAKIETY APLIKACJI”, które jak nazwa wskazuje, jest prawdopodobnie grupą dla wszystkich pakietów aplikacji, więc ją wybrałem. Kliknij OK wszędzie, aby go dodać, a następnie nadaj mu uprawnienia do lokalnego uruchamiania i lokalnej aktywacji.
jak anulować subskrypcję hulu na iTunes
Teraz po kliknięciu OK i zamknięciu interfejsu użytkownika usług składowych błąd zniknął z dziennika zdarzeń, co oznacza, że składnik WSearch COM ma teraz poprawne lokalne uprawnienia do uruchamiania i aktywacji.
Napisałem ten artykuł jako ogólny przewodnik, aby pomóc innym w rozwiązywaniu problemów z błędami DCOM w ich dzienniku zdarzeń w podobny sposób. Wciąż obawiam się, dlaczego system Windows nie ma jeszcze narzędzia do łatwego przywracania odpowiednich uprawnień do obiektów COM na wypadek, gdyby zostały pomieszane.