Odpravljanje težav z WMI

Vsak izkušeni skrbnik sistema Windows je večkrat naletel na težave s storitvijo WMI in njenimi komponentami. Prisotnost težav v podsistemu WMI je kritična z vidika normalnega delovanja sistema, zato se mora administrator obnoviti WMI. V tem članku opisujemo dokaj enostavno tehniko diagnosticiranja in odpravljanja težav s storitvijo WMI..

Širok spekter napak lahko kaže na težave z WMI:

  • Napake pri obdelavi zahtev WMI v dnevnikih sistema in aplikacij
  • Napake GPO, povezane z WMI (nepravilno delovanje filtrov wmi politike itd.)
  • Napake pri delovanju / nezmožnost namestitve agentov SCCM / SCOM
  • Napake v skriptah (vbs ali powershell) z uporabo imenskega prostora WMI

Najprej morate preveriti, ali ima sistem storitev upravljanja Windows (Winmgmt) in ali je vklopljen.

Če je storitev prisotna in je v stanju Zaželeno, je priporočljivo preveriti zdravje WMI tako, da do nje dostopate s preprosto zahtevo wmi. Na primer pri Powershellu je to mogoče storiti tako:

get-wmiobject Win32_OperatingSystem

Če sistem pri izvedbi najpreprostejše zahteve WMI vrne napako (posnetek zaslona prikazuje primer pravilnega odziva storitve WMI), je verjetno nepravilno delovanje storitve WMI ali nekaterih njenih podsistemov, poškodba skladišča WMI ali druge težave.
Vsebina:

  • WMIDiag Utility
  • Ponovna registracija knjižnic WMI in ponovno kopiranje mof datotek
  • Ponovno ustvarjanje skladišča WMI (repozitorij)

WMIDiag Utility

Za "tanko" diagnostiko storitve WMI obstaja uradni Microsoftov pripomoček - WMIDiag (Microsoft WMI Diagnosis). Program je skript vbs, ki preverja različne podsisteme WMI in zbira informacije zapiše v dnevnike datotek (dnevniki so privzeto v direktoriju% TEMP% - C: \ USERS \% USERNAME% \ APPDATA \ LOCAL \ TEMP \) Poročilo, ki izhaja, je sestavljeno iz datotek, katerih imena se začnejo z WMIDIAG-V2.1 in vključujejo naslednje vrste datotek:

  • .Dnevniške datoteke vsebujejo podrobno poročilo o aktivnosti in delovanju pripomočka WMIDiag
  • .datoteke txt vsebujejo zbirna poročila o ugotovljenih napakah, na katere je vredno biti pozoren
  • Datoteke .Csv vsebujejo informacije, potrebne za dolgoročno analizo podsistema WMI

Namig. V 64-bitnih različicah sistema Windows je treba wmidiag zagnati tako:

c: \ windows \ System32 \ cscript.exe wmidiag.vbs

v nasprotnem primeru se bo prikazala napaka: WMIDiag morate zagnati iz izvornega 64-bitnega okolja. V Wow64 ni podprt.

Po končanem delovanju pripomočka WMIDiag mora administrator pregledati prejete dnevniške datoteke, analizirati in poskušati odpraviti ugotovljene napake.

Na splošno lahko WMIDiag nudi informacije o odpravljanju zasebnih napak v WMI, vendar je v večini primerov postopek dolgotrajen in vreden časa, ki ga porabimo le pri reševanju incidentov v kritičnih sistemih (običajno na produktivnih strežnikih). Za množični segment uporabniških delovnih postaj je veliko lažje "udariti po tleh" in težavo WMI reševati bolj radikalno.

Ponovna registracija knjižnic WMI in ponovno kopiranje mof datotek

Naslednji skript je mehka možnost za obnovitev storitve WMI na enem samem računalniku (izvedena je ponovna registracija knjižnic dll in storitev WMI, mof datoteke se ponovno prevedejo). Ta postopek je varno in njegovo izvajanje ne bi smelo povzročiti novih težav s sistemom.

sc config winmgmt start = onemogočen net stop winmgmt cd% windir% \ system32 \ wbem for / f %% s v ('dir / b * .dll') naredite regsvr32 / s %% s wmiprvse / regserver winmgmt / regserver sc config winmgmt start = samodejni neto start winmgmt za / f %% s v ('dir / b * .mof') naredite mofcomp %% s / f %% s in ('dir / b * .mfl') do mofcomp %% s

Te ukaze je mogoče izvesti tako, da v okno vstavite ukazno vrstico ali shranite kodo v bat datoteko in jo zaženete s skrbniškimi pravicami. Po zaključku skripta je treba sistem ponovno zagnati in ponovno preveriti delovanje WMI.

Ponovno ustvarjanje skladišča WMI (repozitorij)

V primeru, da prejšnja metoda ni pomagala, boste morali obnoviti storitev WMI, ki je sestavljena iz obnove skladišča, na bolj "težak" način..

Repozitorij WMI (repozitorij) ki se nahaja v katalogu % windir% \ System32 \ Wbem \ Repozitorij To je baza podatkov, ki vsebuje podatke o metapodatkih in definicijah razredov WMI. V nekaterih primerih lahko shramba WMI vsebuje informacije o statičnem razredu. Če je skladišče WMI poškodovano, se lahko pri delovanju storitve Windows Management Instrumentation (Winmgmt) pojavijo napake do popolne nezmožnosti zagnanja.

Če sumite, da je skladišče WMI poškodovano, ne pozabite, da je njegovo ponovno ustvarjanje zadnja stvar, na katero se morate zateči le, če nobena druga operacija ne reanimira WMI.

Namig. V praksi obstajajo časi, ko rekonstitucija skladišča WMI povzroča težave s programsko opremo drugih proizvajalcev. Ta učinek povzroči dejstvo, da so vsi vnosi v bazo WMI ponastavljeni (v stanje čistega sistema). Takšno programsko opremo bo morda treba znova namestiti v obnovitvenem načinu..

V operacijskem sistemu Windows Vista in novejših različicah lahko z ukazom preverite integriteto skladišča WMI:

winmgmt / verifyrepository

Če ukaz vrne, da je baza podatkov WMI v neskladnem stanju (INCONSISTENT), je vredno poskusiti znova obnoviti skladišče:

Winmgmt / salvagerepository

In znova zaženite storitev wmi:

net stop winmgmt
neto start winmgmt

Če zgoraj opisan ukaz ni pomagal, smo repozitorij ponastavili v prvotno stanje (trda ponastavitev), kot je ta:

Winmgmt / resetrepository

V primeru, da ukazi Winmgmt / salvagerepository in Winmgmt / resetrepository niso dali želenega učinka, je vredno poskusiti ročno izvesti "težko" ponovno ustvarjanje baze WMI s tem scenarijem:

sc config winmgmt start = onemogočen net stop winmgmt cd% windir% \ system32 \ wbem winmgmt / kill winmgmt / odpovedovanje winmgmt / regserver winmgmt / resyncperf, če obstaja Repos_bakup rd Repos_bakup / s / q preimenovanje Repozitorij Repr32% sprys32 scecli.dll regsvr32 / s% systemroot% \ system32 \ userenv.dll za / f %% s v ('dir / b * .dll') naredite regsvr32 / s %% s za / f %% s v ('dir / b * .mof ') naredite mofcomp %% s za / f %% s v (' dir / b * .mfl ') naredite mofcomp %% s sc config winmgmt start = samodejni neto začetek winmgmt wmiprvse / regserver

Ta skript v celoti na novo ustvari repozitorij WMI (staro repozitorij je shranjen v imeniku Repos_bakup). Ko se skript konča z izvajanjem, je treba računalnik znova zagnati in nato preizkusiti storitev WMI s preprosto zahtevo.

V tem članku smo pripravili značilne tehnike za odpravljanje storitve WMI in njenih podsistemov..