Neseniai savo „Windows 8.1“ kompiuteryje niekur nieko pradėjau gauti klaidų įvykių žurnale, įdiegęs naujinimus „Patch Tuesday“. Klaida buvo susijusi su paskirstytu COM (DCOM):
ką matai, kai kas nors blokuoja tave feisbuke
Konkrečios programos leidimo nustatymai nesuteikia vietinio aktyvinimo leidimo COM serverio programai su CLSID {9E175B6D-F52A-11D8-B9A5-505054503030} ir APPID {9E175B9C-F52A-11D8-B9A5-505054503030} vartotojui PCNAME vartotojo vardas SID. S-1-5-21-81864976-3388411891-1937036257-1001 iš adreso „LocalHost“ (naudojant LRPC), veikiančiame programos konteineryje Nepasiekiamas SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804- 1277922394). Šį saugos leidimą galima pakeisti naudojant „Component Services“ administravimo įrankį.
Dėl tokios sudėtingos klaidos nepatyrę vartotojai gali nusivilti. Jiems ši terminologija nėra žinoma. Be to, DCOM klaidų šalinimas yra skausmas, todėl iš pradžių jo nepaisiau, tačiau įvykių žurnale jų buvo pilna, nes tai įvyko kas valandą. Pasiryžusi tai sutvarkyti nusprendžiau ištirti.
Reklama
Tiems, kurie nežino, „COM“ yra sena „Microsoft“ į objektus orientuota tarpprocesinių komunikacijų technologija. COM serveris yra vykdomoji programa (EXE arba DLL), įgyvendinanti COM objektų rinkinį. Daugelis „Windows“ komponentų yra įdiegti kaip COM objektai ir bendrauja tarpusavyje laikydamiesi standartinių COM taisyklių. COM serveriai yra registruoti registre ir turi klasės ID (CLSID) ir APPID.
Pirmasis šios klaidos šalinimo žingsnis buvo išsiaiškinti, su kuriuo DCOM komponentu buvo susiję CLSID ir APPID. Taigi suaktyvinkite registro rengyklę ir eikite į šį registro raktą:
HKEY_CLASSES_ROOT CLSID {9E175B6D-F52A-11D8-B9A5-505054503030}
Šis registro raktas taip pat nurodo tą patį „AppID“ kaip klaidos pranešimas, kuris yra {9E175B9C-F52A-11D8-B9A5-505054503030}. Taigi, eikite į
HKCR APPID {9E175B9C-F52A-11D8-B9A5-505054503030}
Tai man pasakė, kad komponentas buvo „WSearch“ („Windows Search COM“ objektas).
Kitas žingsnis buvo priskirti šiam CLSID / AppID teisingus norimus vietinio aktyvinimo leidimus - mano vartotojo saugos ID (SID) ir programos SID. Norėdami tai padaryti, „Windows“ teikia „Component Services“ įrankį, kuris leidžia vartotojui modifikuoti paleidimo ir aktyvinimo, prieigos ir konfigūravimo teises COM serveriuose.
Atidarykite „Administravimo įrankiai“ -> „Komponentų paslaugos“. Išskleisti komponentų paslaugas -> Kompiuteris -> Mano kompiuteris -> DCOM konfigūracija. Suraskite „WSearch“ ir dešiniuoju pelės mygtuku spustelėkite ją -> Ypatybės. Eikite į skirtuką „Sauga“.
Tai padaręs pamačiau, kad šio COM objekto skirtuke Sauga viskas buvo pilka (išjungta), todėl pirmiausia turėjau suteikti savo vartotojo abonementui visas teises registre. Vėl atidariau „Regedit“ ir nuėjau prie to paties rakto
HKEY_CLASSES_ROOT AppID {9E175B9C-F52A-11D8-B9A5-505054503030}
ir pakeitė leidimus. Pirmiausia turite perimti nuosavybės teisę (pažymėkite „Pakeisti savininką subkonteineriuose ir objektuose“), tada pridėkite savo vartotojo vardą ir suteikite jam visišką kontrolę. Vėliau galite pakeisti nuosavybės teisę į pradinę paskyrą („NT Service TrustedInstaller“).
Naudotis „Winaero's“ labai lengva perimti nuosavybės teises ir suteikti administratoriaus leidimus RegOwnershipEx programa.
Dabar vėl atidariau komponentų tarnybas (Dcomcnfg.exe) ir nuėjau į „WSearch“ ypatybes, skirtuką Sauga, ir dabar galėjau redaguoti „Paleidimo ir aktyvinimo leidimų“ saugos teises, kurios rodomos taip:
Per saugos grupę „Visi“ mano vartotojo paskyra jau turi vietinio aktyvinimo teises, tačiau taip pat rodomi dar 3 SID, kurie nėra žinomi vartotojo abonementai ar grupės, kaip rodo jų piktograma. Jie yra „Application SID“ ir nurodo „Applications“. Įvykių žurnalo klaida taip pat pasakė „... veikia programos sudėtiniame rodinyje Negalimas SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394).
Panašu, kad „Windows“ objektų rinkiklio vartotojo sąsaja neleidžia jums pridėti programos SID pagrindiniams saugos objektams. Taigi, spustelėjęs Pridėti, spustelėjau Išplėstinė ... ir tada Rasti dabar. Čia bus išvardyti visi objektai. Tačiau dauguma jų buvo sąskaitos SID. Aš pastebėjau „VISUS PARAIŠKŲ PAKETUS“, kurie, kaip rodo pavadinimas, tikriausiai yra visų programų paketų grupė, todėl pasirinkau ją. Spustelėkite Gerai visur, kad pridėtumėte, tada suteikite leidimus vietiniam paleidimui ir vietiniam aktyvavimui.
kur galiu rasti nešališkų naujienų
Dabar spustelėjus Gerai ir uždarius komponentų paslaugų vartotojo sąsają, klaida dingo iš įvykių žurnalo, o tai reiškia, kad „WSearch COM“ komponentas turi teisingus vietinio paleidimo ir aktyvinimo leidimus.
Parašiau šį straipsnį kaip bendrą vadovą, kad galėčiau kitiems padėti panašiai išspręsti DCOM klaidas įvykių žurnale. Man vis dar rūpi, kodėl „Windows“ dar neturi įrankio, kuris galėtų lengvai atkurti teisingus COM objektų leidimus, jei jie būtų sujaukti.