Rješavanje problema WMI

Bilo koji iskusni Windows administrator opetovano se susreo s problemima servisa WMI i njegovih komponenti. Prisutnost problema u podsustavu WMI kritična je s gledišta normalnog funkcioniranja sustava, pa administrator mora pribjeći jednom ili drugom triku kako bi obnovio WMI. U ovom ćemo članku opisati prilično jednostavnu tehniku ​​dijagnosticiranja i rješavanja problema WMI usluge..

Širok raspon pogrešaka može ukazivati ​​na probleme s WMI-om:

  • Pogreške u obradi WMI zahtjeva u zapisima sustava i aplikacija
  • GPO pogreške povezane s WMI (nepravilan rad filtera za wmi politike itd.)
  • Pogreške u radu / nemogućnost instaliranja SCCM / SCOM agenata
  • Pogreške u skriptama (vbs ili powerhell) pomoću WMI prostora prostora

Prije svega, morate provjeriti ima li sustav Windows Instrumentation Instrumentation (Winmgmt) i je li uključen.

Ako je usluga prisutna i nalazi se u stanju starta, preporučuje se testiranje zdravlja WMI-a pristupanjem pomoću jednostavnog wmi zahtjeva. Na primjer, kod Powershell-a to se može učiniti ovako:

get-wmiobject Win32_OperatingSystem

Ako sustav vrati pogrešku pri izvršavanju najjednostavnijeg WMI zahtjeva (snimka zaslona prikazuje primjer ispravnog odgovora WMI usluge), vjerojatno postoji neispravno funkcioniranje WMI usluge ili nekog od njegovih podsustava, oštećenja WMI spremišta ili drugi problemi.
sadržaj:

  • WMIDiag Utility
  • Ponovna registracija WMI knjižnica i ponovno sastavljanje mof datoteka
  • Ponovno stvaranje WMI spremišta (skladišta)

WMIDiag Utility

Za "tanku" dijagnostiku WMI usluge, postoji službeni Microsoftov uslužni program - WMIDiag (Microsoft WMI Dijagnoza). Pomoćni program je vbs skripta koja provjerava različite WMI podsustave i bilježi prikupljene podatke u datoteke dnevnika (zapise se prema zadanom nalaze u% TEMP% direktoriju - C: \ USERS \% USERNAME% \ APPDATA \ LOCAL \ TEMP \). Izvješće koje se rezultira sastoji se od datoteka čija imena počinju s WMIDIAG-V2.1 i uključuju sljedeće vrste datoteka:

  • .datoteke dnevnika sadrže detaljno izvješće o aktivnosti i radu uslužnog programa WMIDiag
  • .txt datoteke sadrže sažet izvješća o utvrđenim pogreškama na koje vrijedi obratiti pažnju
  • .Csv datoteke sadrže informacije potrebne za dugoročnu analizu WMI podsustava

vijeće. U 64-bitnim verzijama sustava Windows wmidiag treba izvesti ovako:

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

u protivnom će se pojaviti pogreška: WMIDiag mora biti pokrenut iz izvornog 64-bitnog okruženja. U Wow64 nije podržana.

Nakon što uslužni program WMIDiag završi s radom, administrator treba pregledati primljene datoteke dnevnika, analizirati i pokušati popraviti pronađene pogreške.

Općenito, WMIDiag može pružiti informacije o ispravljanju privatnih pogrešaka u WMI-u, ali u većini slučajeva postupak je dugotrajan i vrijedan je vremena utrošenog samo na rješavanje incidenata u kritičnim sustavima (obično na produktivnim poslužiteljima). Za masovni segment korisničkih radnih stanica, puno je lakše „udariti u pod“ i problem WMI-ja radikalnije riješiti.

Ponovna registracija WMI knjižnica i ponovno sastavljanje mof datoteka

Sljedeća je skripta "soft" opcija za povrat zdravlja WMI usluge na jednom računalu (dll knjižnice i WMI usluge su ponovno registrirane, mof datoteke se prekomponiraju). Ovaj postupak je sigurno i njegova primjena ne bi trebala dovesti do novih problema sa sustavom.

sc config winmgmt start = onemogućeno neto zaustavljanje winmgmt cd% windir% \ system32 \ wbem for / f %% s u ('dir / b * .dll') do regsvr32 / s %% s wmiprvse / regserver winmgmt / regserver sc config winmgmt start = auto neto start winmgmt for / f %% s in ('dir / b * .mof') do mofcomp %% s / f %% s in ('dir / b * .mfl') do mofcomp %% s

Te se naredbe mogu izvesti jednostavnim umetanjem naredbenog retka u prozor ili spremanjem koda u bat datoteku i pokretanjem s administratorskim pravima. Nakon završetka skripte, potrebno je ponovno pokrenuti sustav i ponovno provjeriti rad WMI.

Ponovno stvaranje WMI spremišta (skladišta)

U slučaju da prethodna metoda nije pomogla, morat ćete prijeći na "težak" način da vratite WMI uslugu, koja se sastoji u ponovnoj izgradnji spremišta..

WMI repozitorij (skladište) nalazi se u katalogu % windir% \ System32 \ Wbem \ Repository To je baza podataka koja sadrži podatke o metapodacima i definicijama WMI klasa. U nekim slučajevima, skladište WMI može sadržavati informacije o statičkoj klasi. Ako je WMI spremište oštećeno, mogu se pojaviti pogreške u radu usluge Windows Management Instrumentation (Winmgmt) do potpune nemogućnosti pokretanja.

U slučaju da sumnjate da je WMI spremište oštećeno, imajte na umu da je njegovo ponovno stvaranje posljednja stvar na koju biste trebali pribjeći jedino ako nijedna druga operacija ne reanimira WMI.

vijeće. U praksi postoje slučajevi kad rekonstitucija WMI skladišta dovodi do problema s softverom treće strane. Taj je učinak uzrokovan činjenicom da su svi unosi u bazu podataka WMI resetirani (na stanje čistog sustava). Takav će softver možda morati biti ponovno instaliran u načinu oporavka..

U sustavu Windows Vista i novijim verzijama možete provjeriti integritet WMI spremišta pomoću naredbe:

winmgmt / verifyrepository

Ako naredba vrati da je WMI baza podataka u nedosljednom stanju (INCONSISTENT), vrijedno je isprobati mekan oporavak spremišta:

Winmgmt / salvagerepository

I ponovno pokrenite wmi uslugu:

net stop winmgmt
neto start winmgmt

Ako gore opisana naredba nije pomogla, spremište smo vratili u prvotno stanje (tvrdi reset) na sljedeći način:

Winmgmt / resetrepository

U slučaju da naredbe Winmgmt / salvagerepository i Winmgmt / resetrepository nisu dale željeni učinak, vrijedno je pokušati izvršiti "teško" ponovno stvaranje WMI baze ručno s ovim scenarijem:

sc config winmgmt start = onemogućeno neto zaustavljanje winmgmt cd% windir% \ system32 \ wbem winmgmt / kill winmgmt / undegserver winmgmt / regserver winmgmt / resyncperf ako postoji Repos_bakup rd Repos_bakup / s / q preimenovanje Repozitorij Repr32% sprys scecli.dll regsvr32 / s% systemroot% \ system32 \ userenv.dll for / f %% s in ('dir / b * .dll') do regsvr32 / s %% s for / f %% s in ('dir / b * .mof ') učinite mofcomp %% s za / f %% s u (' dir / b * .mfl ') do mofcomp %% s sc config winmgmt start = auto net start winmgmt wmiprvse / regserver

Ova skripta u potpunosti ponovno stvara WMI spremište (staro spremište je pohranjeno u direktoriju Repos_bakup). Nakon što se skripta završi, računalo je potrebno ponovno pokrenuti, a zatim testirati WMI uslugu jednostavnim zahtjevom.

U ovom smo članku sastavili tipične tehnike za rješavanje problema WMI i njegovih podsustava..