Riešenie problémov s WMI

Každý skúsený správca systému Windows opakovane zaznamenal problémy so službou WMI a jej súčasťami. Prítomnosť problémov v subsystéme WMI je kritická z hľadiska normálneho fungovania systému, takže správca sa musí uchýliť k jednému alebo druhému triku na obnovenie WMI. V tomto článku popisujeme pomerne jednoduchú techniku ​​diagnostiky a riešenia problémov služby WMI..

Problémy s WMI môžu naznačovať rôzne chyby:

  • Chyby pri spracovaní požiadaviek WMI v protokoloch systému a aplikácií
  • Chyby GPO súvisiace s WMI (nesprávna činnosť filtrov politiky wmi atď.)
  • Chyby v prevádzke / neschopnosti nainštalovať agentov SCCM / SCOM
  • Chyby v skriptoch (vbs alebo powerhell) pomocou menného priestoru WMI

Najprv musíte skontrolovať, či má systém službu Windows Management Instrumentation (Winmgmt) a či je zapnutý..

Ak je služba prítomná a je v stave Spustené, odporúča sa otestovať stav WMI prístupom k nej pomocou jednoduchej požiadavky wmi. Napríklad s Powershell sa to dá urobiť takto:

get-wmiobject Win32_OperatingSystem

Ak systém vráti chybu pri vykonávaní najjednoduchšej požiadavky WMI (na snímke obrazovky je uvedený príklad správnej odpovede služby WMI), pravdepodobne dôjde k nesprávnemu fungovaniu služby WMI alebo niektorých jej subsystémov, k poškodeniu úložiska WMI alebo iným problémom..
obsah:

  • Nástroj WMIDiag
  • Opätovná registrácia knižníc WMI a prekompilovanie súborov MF
  • Opätovné vytvorenie úložiska WMI (úložisko)

Nástroj WMIDiag

Pre „tenkú“ diagnostiku služby WMI existuje oficiálny pomocný program spoločnosti Microsoft - WMIDiag (Microsoft WMI Diagnostnosis). Obslužný program je skript vbs, ktorý kontroluje rôzne podsystémy WMI a zapisuje zhromaždené informácie do protokolových súborov (štandardne sú protokoly v adresári% TEMP% - C: \ USERS \% USERNAME% \ APPDATA \ LOCAL \ TEMP \). Výsledná zostava pozostáva zo súborov, ktorých názvy začínajú WMIDIAG-V2.1 a zahŕňajú nasledujúce typy súborov:

  • .protokolové súbory obsahujú podrobnú správu o činnosti a činnosti obslužného programu WMIDiag
  • .Súbory txt obsahujú súhrnné správy o zistených chybách, ktoré sa oplatí venovať pozornosť
  • Súbory .Csv obsahujú informácie potrebné na dlhodobú analýzu subsystému WMI

rada. V 64 bitových verziách systému Windows je potrebné spustiť program wmidiag takto:

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

v opačnom prípade sa zobrazí chyba: WMIDiag musí byť spustený z natívneho 64-bitového prostredia. Vo Wow64 nie je podporovaný.

Po dokončení obslužného programu WMIDiag by mal správca skontrolovať prijaté protokolové súbory, analyzovať a pokúsiť sa opraviť nájdené chyby..

Vo všeobecnosti môže WMIDiag poskytovať informácie o opravách súkromných chýb vo WMI, ale vo väčšine prípadov je tento proces dosť časovo náročný a stojí za to čas potrebný iba na riešenie incidentov v kritických systémoch (zvyčajne na produktívnych serveroch). V prípade veľkého segmentu pracovných staníc používateľov je oveľa jednoduchšie „zasiahnuť podlahu“ a radikálnejšie vyriešiť problém WMI..

Opätovná registrácia knižníc WMI a prekompilovanie súborov MF

Nasledujúci skript je „mäkkou“ voľbou na obnovenie stavu služby WMI na jednom počítači (knižnice dll a služby WMI sa opätovne zaregistrujú, súbory MF sa prekompilujú). Tento postup je trezor a jeho implementácia by nemala viesť k žiadnym novým problémom so systémom.

sc config winmgmt start = deaktivovaný net stop winmgmt cd% windir% \ system32 \ wbem pre / f %% s v ('dir / b * .dll') do regsvr32 / s %% s wmiprvse / regserver winmgmt / regserver sc config winmgmt start = auto net start winmgmt pre / f %% s v ('dir / b * .mof') do mofcomp %% s pre / f %% s v ('dir / b * .mfl') do mofcomp %% s

Tieto príkazy sa dajú vykonať jednoduchým vložením príkazového riadku do okna alebo uložením kódu do súboru bat a jeho spustením s právami správcu. Po dokončení skriptu je potrebné systém reštartovať a znova skontrolovať operáciu WMI.

Opätovné vytvorenie úložiska WMI (úložisko)

V prípade, že predchádzajúca metóda nepomohla, budete musieť pristúpiť k „tvrdšiemu“ spôsobu obnovenia služby WMI, ktorý spočíva v prestavbe úložiska..

Úložisko WMI (úložisko) nachádza sa v katalógu % windir% \ System32 \ Wbem \ Repository Je to databáza, ktorá obsahuje informácie o metaúdajoch a definíciách tried WMI. V niektorých prípadoch môže archív WMI obsahovať informácie o statickej triede. Ak je úložisko WMI poškodené, môžu sa vyskytnúť chyby v prevádzke služby Windows Management Instrumentation (Winmgmt) až do úplnej neschopnosti spustiť ho..

V prípade, že máte podozrenie, že úložisko WMI je poškodené, nezabudnite, že jeho opätovné vytvorenie je poslednou vecou, ​​ktorú musíte uchýliť, iba ak WMI znovu oživiť nebudú žiadne iné operácie..

rada. V praxi existujú situácie, keď rekonštitúcia úložiska WMI vedie k problémom so softvérom tretích strán. Tento efekt je spôsobený skutočnosťou, že všetky záznamy v databáze WMI sa obnovia (do stavu čistého systému). Takýto softvér bude možno potrebné preinštalovať v režime obnovenia..

V systéme Windows Vista a novších verziách môžete skontrolovať integritu úložiska WMI pomocou príkazu:

winmgmt / overiť úložisko

Ak príkaz vráti, že databáza WMI je v nekonzistentnom stave (INCONSISTENT), oplatí sa vyskúšať mäkké obnovenie úložiska:

Winmgmt / salvagerepository

A reštartujte službu wmi:

net stop winmgmt
net start winmgmt

Ak príkaz opísaný vyššie nepomohol, obnovíme repozitár do pôvodného stavu (tvrdý reset) takto:

Winmgmt / resetrepository

V prípade, že príkazy Winmgmt / salvagerepository a Winmgmt / resetrepository neprinášajú požadovaný účinok, je vhodné skúsiť vykonať „tvrdé“ opätovné vytvorenie základne WMI manuálne pomocou tohto scenára:

sc config winmgmt start = deaktivovaný net stop winmgmt cd% windir% \ system32 \ wbem winmgmt / kill winmgmt / unregserver winmgmt / regserver winmgmt / resyncperf ak existuje Repos_bakup rd Repos_bakup / s / q premenovať Repository Repr3232% sysystém scecli.dll regsvr32 / s% systemroot% \ system32 \ userenv.dll pre / f %% s v ('dir / b * .dll') do regsvr32 / s %% s pre / f %% s in ('dir / b * .mof ') do mofcomp %% s pre / f %% s v (' dir / b * .mfl ') do mofcomp %% s sc config winmgmt start = auto net start winmgmt wmiprvse / regserver

Tento skript úplne znova vytvorí úložisko WMI (staré úložisko je uložené v adresári Repos_bakup). Po dokončení spúšťania skriptu je potrebné reštartovať počítač a potom pomocou jednoduchej požiadavky otestovať fungovanie služby WMI.

V tomto článku sme zostavili typické techniky riešenia problémov so službou WMI a jej subsystémami..