Äskettäin Windows 8.1 -tietokoneellani, tyhjästä, aloin saada virheitä Tapahtumalokiin päivitysten asentamisen jälkeen Patch Tuesday. Virhe liittyi hajautettuun COM (DCOM):
kuinka poistaa tyhjä sivu sanalla
Sovelluskohtaiset käyttöoikeusasetukset eivät myönnä paikallisen aktivoinnin lupaa COM-palvelinsovellukselle CLSID: llä {9E175B6D-F52A-11D8-B9A5-505054503030} ja APPID {9E175B9C-F52A-11D8-B9A5-505054503030} käyttäjälle PCNAME käyttäjänimi SID. S-1-5-21-81864976-3388411891-1937036257-1001 osoitteesta LocalHost (LRPC: tä käyttävä), joka toimii sovelluskontissa Ei käytettävissä SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804- 1277922394). Tätä suojauslupaa voidaan muokata Component Services -hallintatyökalulla.
Tällainen monimutkainen virhe saattaa saada kokemattomat käyttäjät turhautumaan. Ne eivät tunne tätä terminologiaa. Lisäksi DCOM-virheiden vianetsintä on tuskaa, joten jätin sen aluksi huomiotta, mutta tapahtumaloki oli täynnä niitä, koska se tapahtui noin tunnin välein. Päätin päättää korjata ongelman tutkia.
Mainonta
Niille teistä, jotka eivät tiedä, COM on Microsoftin vanha objektisuuntainen prosessien välinen viestintätekniikka. COM-palvelin on suoritettava tiedosto (EXE tai DLL), joka toteuttaa joukon COM-objekteja. Monet Windows-komponentit on toteutettu COM-objekteina ja kommunikoivat keskenään COM-standardien mukaisesti. COM-palvelimet on rekisteröity rekisteriin, ja niillä on luokan tunnus (CLSID) ja APPID.
Ensimmäinen vaihe tämän virheen vianetsinnässä oli selvittää, mihin DCOM-komponenttiin CLSID ja APPID liittyivät. Joten käynnistä rekisterieditori ja siirry tähän rekisteriavaimeen:
HKEY_CLASSES_ROOT CLSID {9E175B6D-F52A-11D8-B9A5-505054503030}
Tämä rekisteriavain osoittaa myös saman AppID: n kuin virheilmoitus, joka on {9E175B9C-F52A-11D8-B9A5-505054503030}. Joten, seuraavaksi siirry
HKCR APPID {9E175B9C-F52A-11D8-B9A5-505054503030}
Tämä kertoi minulle, että komponentti oli WSearch (Windows Search COM -objekti).
Seuraava vaihe oli määrittää tälle CLSID / AppID: lle oikeat haluamasi paikalliset aktivointioikeudet - käyttäjän suojaustunnukselleni (SID) ja sovelluksen SID: lle. Tätä varten Windows tarjoaa Component Services -työkalun, jonka avulla käyttäjä voi muokata käynnistys- ja aktivointioikeuksia, käyttöoikeuksia ja kokoonpanolupia COM-palvelimilla.
Avaa Hallintatyökalut -> Komponenttipalvelut. Laajenna Komponenttipalvelut -> Tietokone -> Oma tietokone -> DCOM-määritykset. Etsi WSearch ja napsauta sitä hiiren kakkospainikkeella -> Ominaisuudet. Siirry Suojaus-välilehdelle.
Tämän tekemisen jälkeen huomasin, että kaikki oli harmaana (pois käytöstä) tämän COM-objektin Suojaus-välilehdessä, joten minun oli ensin annettava käyttäjätililleni kaikki oikeudet rekisterissä. Avasin Regeditin uudelleen ja menin samaan avaimeen
HKEY_CLASSES_ROOT AppID {9E175B9C-F52A-11D8-B9A5-505054503030}
ja muutti käyttöoikeuksia. Ensin sinun on otettava omistusoikeus (tarkista 'Korvaa alihankkijoiden ja objektien omistaja'), lisää sitten käyttäjänimesi ja anna sille täydellinen hallinta. Sen jälkeen voit vaihtaa omistajuuden takaisin alkuperäiseen tiliin (NT Service TrustedInstaller).
Winaeron omistaminen ja järjestelmänvalvojan käyttöoikeuksien antaminen on erittäin helppoa RegOwnershipEx sovellus.
Nyt avasin uudelleen komponenttipalvelut (Dcomcnfg.exe) ja menin WSearch-ominaisuuksiin, Suojaus-välilehteen ja pystyin nyt muokkaamaan Käynnistys- ja Aktivointioikeudet-suojausoikeuksia, jotka näkyvät näin:
Suojausryhmän Kaikki kautta käyttäjätunnuksellani on jo paikallisen aktivoinnin oikeudet, mutta näytetään myös 3 muuta SID: tä, jotka eivät ole tunnettuja käyttäjätilejä tai ryhmiä, kuten niiden kuvake osoittaa. Ne ovat sovelluksen SID: itä ja viittaavat sovelluksiin. Tapahtumalokivirheessä sanottiin myös: ... käynnissä sovelluskontissa Ei käytettävissä SID (S-1-15-2-1430448594-2639229838-973813799-439329657-1197984847-4069167804-1277922394).
Nyt Windows-objektinvalitsimen käyttöliittymä ei näytä antavan sinun lisätä sovelluksen SID: itä suojauksen pääobjekteille. Joten napsautettuani Lisää, napsautin Lisäasetukset ... ja sitten Etsi nyt. Tämä luetteloi kaikki objektit. Mutta suurin osa heistä oli tilin SID-tunnuksia. Huomasin 'KAIKKI SOVELLUSPAKETIT', joka nimestä johtuen on luultavasti ryhmä kaikille sovelluspaketeille, joten valitsin sen. Napsauta OK kaikkialla lisätäksesi sen ja anna sille sitten Paikallinen käynnistys ja Paikallinen aktivointi -oikeudet.
kuinka muuttaa iPhone-varmuuskopion tallennustilaa
Kun napsautat OK ja suljet Component Services -käyttöliittymän, virhe poistuu tapahtumalokista, mikä tarkoittaa, että WSearch COM -komponentilla on nyt oikeat paikalliset käynnistys- ja aktivointioikeudet.
Kirjoitin tämän artikkelin yleisenä oppaana auttaakseni kaikkia muita vianetsinnässä DCOM-virheitä tapahtumalokissaan samalla tavalla. Olen edelleen huolissani siitä, miksi Windowsilla ei ole vielä työkalua, jolla COM-objektien oikeat käyttöoikeudet voidaan helposti palauttaa, jos ne sekoittuvat.