A WMI hibaelhárítása

Bármely tapasztalt Windows rendszergazda többször is felmerült problémákkal a WMI szolgáltatás és annak összetevői vonatkozásában. A problémák jelenléte a WMI alrendszerben a rendszer normál működése szempontjából kritikus jelentőségű, ezért az adminisztrátornak egy vagy másik trükköt kell alkalmaznia a WMI visszaállításához. Ebben a cikkben egy meglehetősen egyszerű technikát írunk le egy WMI-szolgáltatás diagnosztizálására és hibaelhárítására..

A hibák széles köre jelezheti a WMI problémáit:

  • Hiba a WMI-kérelmek feldolgozásában a rendszer- és alkalmazásnaplókban
  • A WMI-vel kapcsolatos GPO hibák (a wmi házirend-szűrők helytelen működése stb.)
  • Működési hibák / az SCCM / SCOM ügynökök telepítésének képessége
  • Hiba a szkriptekben (vbs vagy powershell) a WMI névtér használatával

Először is ellenőriznie kell, hogy a rendszer rendelkezik-e Windows Management Instrumentation (Winmgmt) szolgáltatással, és be van-e kapcsolva.

Ha a szolgáltatás jelen van és elindult állapotban van, akkor javasoljuk, hogy tesztelje a WMI állapotát, elérve egy egyszerű wmi kéréssel. Például a Powershell-rel ez a következőképpen tehető:

get-wmiobject Win32_OperatingSystem

Ha a rendszer hibát ad vissza a legegyszerűbb WMI-kérelem végrehajtásakor (a képernyőképen a WMI-szolgáltatás helyes válaszának példája látható), akkor valószínűleg a WMI-szolgáltatás vagy annak néhány alrendszere hibásan működik, a WMI-tárház megsérült, vagy egyéb problémák vannak.
Tartalom:

  • WMIDiag segédprogram
  • A WMI könyvtárak újraregisztrálása és a mof fájlok újratelepítése
  • A WMI-lerakat újra létrehozása (lerakat)

WMIDiag segédprogram

A WMI szolgáltatás "vékony" diagnosztizálásához van egy hivatalos Microsoft segédprogram - WMIDiag (Microsoft WMI Diagnosis). A segédprogram egy vbs szkript, amely ellenőrzi a különféle WMI alrendszereket, és az összegyűjtött információkat naplófájlokba írja (alapértelmezés szerint a naplók a% TEMP% könyvtárban vannak) - C: \ USERS \% USERNAME% \ APPDATA \ LOCAL \ TEMP \). A kapott jelentés olyan fájlokat tartalmaz, amelyek neve a WMIDIAG-V2.1-vel kezdődik, és a következő fájltípusokat tartalmazza:

  • .A naplófájlok részletes jelentést tartalmaznak a WMIDiag segédprogram tevékenységéről és működéséről
  • .A txt fájlok összefoglaló jelentéseket tartalmaznak a talált hibákról, amelyekre érdemes figyelni
  • A .Csv fájlok tartalmazzák a WMI alrendszer hosszú távú elemzéséhez szükséges információkat

tanács. A Windows 64 bites verziójában a wmidiag-t így kell futtatni:

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

egyébként hiba jelenik meg: A WMIDiag programot a natív 64 bites környezetből kell futtatni. A Wow64 nem támogatja.

Miután a WMIDiag segédprogram befejeződött, az adminisztrátornak meg kell vizsgálnia a kapott naplófájlokat, elemeznie kell és meg kell próbálnia kijavítani a talált hibákat..

Általában a WMIDiag információt nyújthat a magánhibák kijavításáról a WMI-ben, de a legtöbb esetben a folyamat meglehetősen időigényes, és csak a kritikus rendszerekben (általában a hatékony kiszolgálókon) jelentkező események megoldásakor érdemes időt költeni. A felhasználói munkaállomások tömeges szegmense esetében sokkal könnyebb „megérinteni a padlót” és radikálisabban megoldani a WMI problémát..

A WMI könyvtárak újraregisztrálása és a mof fájlok újratelepítése

A következő szkript egy „puha” opció a WMI szolgáltatás állapotának helyreállításához egyetlen számítógépen (a dll könyvtárakat és a WMI szolgáltatásokat újra regisztrálják, a mof fájlokat újrafordítják). Ez az eljárás a következő biztonságos és végrehajtása nem okozhat új problémákat a rendszerrel.

sc config winmgmt start = letiltott nettó stop winmgmt cd% windir% \ system32 \ wbem / f %% s számára ('dir / b * .dll') do regsvr32 / s %% s wmiprvse / regserver winmgmt / regserver sc config winmgmt start = automatikus nettó indítás winmgmt / f %% s számára ('dir / b * .mof') do mofcomp %% s for / f %% s in ('dir / b * .mfl') do mofcomp %% s

Ezeket a parancsokat úgy lehet végrehajtani, hogy egyszerűen beilleszt egy parancssort az ablakba, vagy menti a kódot egy bat fájlba és futtatja azt rendszergazdai jogokkal. A szkript befejezése után a rendszert újra kell indítani, és újra ellenőrizni kell a WMI működését.

A WMI-lerakat újra létrehozása (lerakat)

Abban az esetben, ha az előző módszer nem segített, akkor a WMI szolgáltatás helyreállításának „keményebb” módjára kell lépnie, amely a tárház újjáépítését foglalja magában..

WMI-lerakat (lerakat) található a katalógusban % windir% \ System32 \ Wbem \ Repository Ez egy adatbázis, amely információkat tartalmaz a metaadatokról és a WMI osztályok meghatározásáról. Bizonyos esetekben a WMI-tárház statikus osztályinformációkat tartalmazhat. Ha a WMI-lerakat sérült, hibák léphetnek fel a Windows Management Instrumentation (Winmgmt) szolgáltatás működésében egészen az indításig..

Abban az esetben, ha arra gyanakszik, hogy a WMI-tárház megsérült, ne feledje, hogy az újbóli létrehozása az utolsó dolog, amelyhez csak akkor kell fordulnia, ha más művelet nem reanimálja a WMI-t.

tanács. A gyakorlatban olyan esetekben vannak esetek, amikor a WMI-tárhely rekonstruálása problémákat okoz harmadik fél által készített szoftverekkel. Ezt a hatást az okozza, hogy a WMI adatbázisban minden bejegyzés visszaáll (a tiszta rendszer állapotára). Előfordulhat, hogy az ilyen szoftvereket újratelepíteni kell helyreállítási módban..

A Windows Vista és újabb verziói a következő paranccsal ellenőrizhetik a WMI-tárház integritását:

winmgmt / checkrepository

Ha a parancs visszaadja, hogy a WMI-adatbázis inkonzisztens állapotban van (INCONSISTENT), érdemes kipróbálni a tároló lágy helyreállítását:

Winmgmt / salvagerepository

Indítsa újra a wmi szolgáltatást:

net stop Winmgmt
nettó indulás Winmgmt

Ha a fent leírt parancs nem segített, akkor a lerakatot visszaállítottuk a kiindulási állapotába (kemény visszaállítás):

Winmgmt / resetrepository

Abban az esetben, ha a Winmgmt / mentési adattár és a Winmgmt / resetrepository parancsok nem adták meg a kívánt hatást, akkor érdemes megkísérelni a WMI-alap kézi újbóli létrehozását manuálisan a következő forgatókönyvvel:

sc config winmgmt start = letiltva nettó stop winmgmt cd% windir% \ system32 \ wbem winmgmt / kill winmgmt / irregserver winmgmt / regserver winmgmt / resyncperf, ha létezik Repos_bakup rd Repos_bakup / s / q átnevezése Repository Repr3232% sysp scecli.dll regsvr32 / s% systemroot% \ system32 \ userenv.dll / f %% s számára ('dir / b * .dll') a regsvr32 / s %% s / f %% s fájlhoz ('dir / b * .mof ') do mofcomp %% s for / f %% s in (' dir / b * .mfl ') do mofcomp %% s sc config winmgmt start = automatikus nettó indítás winmgmt wmiprvse / regserver

Ez a szkript teljesen újból létrehozza a WMI-lerakatot (a régi lerakat a Repos_bakup könyvtárban található). Miután a szkript futtatása befejeződött, a számítógépet újra kell indítani, majd tesztelje a WMI-szolgáltatás működését egy egyszerű kéréssel.

Ebben a cikkben tipikus technikákat állítottunk össze a WMI szolgáltatás és annak alrendszereinek hibaelhárítása érdekében..