Hiljuti hakkasin oma Windows 8.1 arvutis kuhugi ilmnema sündmuste logi vigu pärast värskenduste installimist plaastri teisipäevale. Viga oli seotud hajutatud COM-ga (DCOM):
kuidas vaadata lugemata kirju gmailis
Rakenduspõhised loa sätted ei anna COM-serveri rakenduse CLSID-ga {9E175B6D-F52A-11D8-B9A5-505054503030} ja APPID {9E175B9C-F52A-11D8-B9A5-505054503030} kohaliku aktiveerimise luba kasutajale PCNAME Kasutajanimi SID S-1-5-21-81864976-3388411891-1937036257-1001 aadressilt LocalHost (Kasutades LRPC-d), mis töötab rakenduse konteineris Pole saadaval SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804- 1277922394). Seda turvaluba saab muuta Component Services'i haldustööriista abil.
Selline keeruline viga võib panna kogenematud kasutajad pettumust tekitama. Neile pole see terminoloogia tuttav. Lisaks on DCOM-i vigade otsimine piin, nii et ma eirasin seda alguses, kuid sündmuste logi oli neid täis, kuna see toimus umbes iga tunni tagant. Otsustanud selle parandada, otsustasin seda uurida.
Reklaam
Neile, kes te ei tea, on COM Microsofti vana objektipõhine protsessidevaheline kommunikatsioonitehnoloogia. COM-server on käivitatav fail (EXE või DLL), mis rakendab COM-objektide komplekti. Paljud Windowsi komponendid on rakendatud COM-objektidena ja järgivad üksteisega suhtlemiseks standardseid COM-reegleid. COM-serverid on registris registreeritud ja neil on klassi ID (CLSID) ja APPID.
Esimene tõrkeotsingu samm oli teada saada, millise DCOM-i komponendiga CLSID ja APPID olid seotud. Nii et käivitage registriredaktor ja minge selle registrivõtme juurde:
HKEY_CLASSES_ROOT CLSID {9E175B6D-F52A-11D8-B9A5-505054503030}
See registrivõti osutab samale rakenduse ID-le ka veateatega, mis on {9E175B9C-F52A-11D8-B9A5-505054503030}. Niisiis, järgmisena minge
HKCR APPID {9E175B9C-F52A-11D8-B9A5-505054503030}
See ütles mulle, et komponent oli WSearch (Windowsi otsingu COM-objekt).
Järgmine samm oli sellele CLSID / AppID-le määrata õiged kohalikud aktiveerimisõigused, mida ta soovis - minu kasutaja turva-ID (SID) ja rakenduse SID. Selleks pakub Windows Component Services tööriista, mis võimaldab kasutajal muuta COM-serverite käivitamis- ja aktiveerimislubasid, juurdepääsulubasid ja konfiguratsioonilube.
Avage haldustööriistad -> komponenditeenused. Laiendage Component Services -> Computer -> My Computer -> DCOM Config. Leidke 'WSearch' ja paremklõpsake seda -> Atribuudid. Minge vahekaardile Turvalisus.
Seda tehes nägin, et selle COM-objekti vahekaardil Turvalisus oli kõik hall (välja lülitatud), nii et mul oli vaja kõigepealt anda oma kasutajakontole registris kõik õigused. Avasin uuesti Regediti ja läksin sama klahvi juurde
HKEY_CLASSES_ROOT AppID {9E175B9C-F52A-11D8-B9A5-505054503030}
ja muutis õigusi. Kõigepealt peate omandama omandiõiguse (märkige ruut „Asenda omanik alamkonteineritel ja objektidel”), seejärel lisage oma kasutajanimi ja andke sellele täielik kontroll. Pärast saate omandiõiguse tagasi algsele kontole (NT Service TrustedInstaller) muuta.
Winaero omadega on omandamine ja administraatoriõiguste andmine ülimalt lihtne RegOwnershipEx rakendus.
Nüüd avasin uuesti komponenditeenused (Dcomcnfg.exe) ja läksin vahekaardile WSearch atribuudid, Turvalisus ja sain nüüd redigeerida käivitus- ja aktiveerimislubade turvalubasid, mis kuvatakse järgmiselt:
Turvagrupi Kõik kaudu on minu kasutajakontol juba kohaliku aktiveerimise õigused, kuid kuvatud on veel 3 muud SID-d, mis pole nende kasutajakontod või rühmad, nagu nende ikoon näitab. Need on rakenduse SID-d ja viitavad rakendustele. Sündmuste logi tõrge ütles ka: ... töötab rakenduse konteineris Pole saadaval SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394).
Nüüd näib, et Windowsi objektivalija kasutajaliides ei võimalda teil lisada peamiste turvaobjektide jaoks rakenduse SID-sid. Nii et pärast nupu Lisa klõpsamist klõpsasin valikul Täpsem ... ja seejärel nupul Leia kohe. See loetleb kõik objektid. Kuid enamik neist olid konto SID-d. Ma märkasin 'KÕIK RAKENDUSPAKETID', mis nimest tulenevalt on tõenäoliselt kõigi rakenduspakettide rühm, nii et valisin selle. Klõpsake selle lisamiseks kõikjal nuppu OK ja seejärel lubage kohalik käivitus ja kohalik aktiveerimine.
kuidas eemaldada rolle ebakõlas
Nüüd klõpsates nuppu OK ja komponenditeenuste kasutajaliidese sulgemisel on viga sündmuste logist kadunud, mis tähendab, et WSearch COM komponendil on nüüd õiged kohaliku käivitus- ja aktiveerimisõigused.
Kirjutasin selle artikli üldise juhendina, et aidata kellelgi teisel oma sündmuste logi DCOM-i tõrkeid sarnasel viisil tõrkeotsinguks. Olen endiselt mures, miks Windowsil pole veel tööriista, mis hõlpsasti COM-objektide õiged õigused taastaks, kui need sassi lähevad.