Geek iskola a PowerShell segítségével számítógépes információkhoz
A WMI és újabb testvére CIM egyaránt használható a Windows környezetének kezelésére. De tudod a különbséget közöttük? Csatlakozz hozzánk, amikor megnézzük.
Ügyeljen arra, hogy olvassa el a sorozat korábbi cikkeit:
- Ismerje meg, hogyan kell automatizálni a Windowsot a PowerShell segítségével
- Tanulj meg a Cmdlet használatát a PowerShell-ben
- Tanulj meg, hogyan kell használni az objektumokat a PowerShell-ben
- Tanulási formázás, szűrés és összehasonlítás a PowerShell-ben
- Ismerje meg a Remoting használatát a PowerShell-ben
És hetekig tartsd a többi sorozatot.
Bevezetés
A WMI a Windows Management Instrumentation. Az „Instrumentation” szó arra a tényre utal, hogy a WMI lehetővé teszi, hogy információt szerezzen a számítógép belső állapotáról, hasonlóan az autó műszerfalának eszközeihez, hogy az autók belső alkatrészeiről információt kaphasson és jelenjen meg.
A WMI olyan tárolóból áll, amely olyan osztályokat tartalmaz, amelyek a gépen belül kezelhető összetevőket jelentenek. Ez azt jelenti, hogy a WMI-nek van egy Win32_Battery osztálya, nem jelenti azt, hogy a készülék tartalmaz egy akkumulátort. Ezeket az osztályokat lekérdezhetjük helyi vagy akár hálózati hálózaton keresztül is, egy olyan lekérdezési nyelv használatával, amely nagyon hasonlít a WQL nevű SQL-hez. A WMI-ről azonban ismert, hogy nagyon megbízhatatlan, főként azért, mert az RPC-n (Távoli eljáráshívások) alapul, amely néhány őrült dolgot tesz az általuk választott portokkal kapcsolatban.
A Windows 8-tól és a Server 2012-től kezdve a WMI-t a közös információs modell vagy a CIM rövidítése érdekében fokozatosan megszüntetik. Az egyetlen különbség a WMI és a CIM között az általuk használt szállítási protokollok. Míg a WMI a Távoli eljáráshívások használatával végez lekérdezéseket, a CIM HTTP-t használ, ami úgy tűnik, hogy hatalmas különbséget mutat. A hátoldalon még mindig ugyanarra az információtárolóra beszélnek.
A WMI használata
A WMI-n keresztül elérhető információk gyorsabb és legegyszerűbb felfedezése az, hogy megragad egy ingyenes WMI-objektumböngésző másolatát. Szeretjük ezt. A letöltés után tegye ki a készüléket, és grafikus felületet kap a WMI osztályok böngészéséhez.
Ha szeretné megtudni valamit a számítógép lemezkonfigurációjáról, nyomja meg a Ctrl + F billentyűzet kombinációt egy keresőmező megjelenítéséhez, majd írja be a „logicaldisk” parancsot, és nyomja meg az enter billentyűt.
Azonnal eljut a Win32_LogicalDisk osztályba.
Az alkalmazás alsó felében látható az osztály két példánya.
Miután megkaptuk az osztályt, amit keresünk, a PowerShell-től való lekérdezés egyenesen előre van.
Get-WmiObject -Query “SELECT * FROM Win32_LogicalDisk”
Nem láttam egy ideig a szintaxist, amikor az emberek mostanában inkább az új paraméterezett szintaxist használják.
Get-WmiObject-Class Win32_LogicalDisk
Ha a hálózaton lévő másik számítógépről szeretne információt kapni, egyszerűen használja a ComputerName paramétert.
Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper -Hitelesítő-viper \ t
A CIM használata
Figyelembe véve, hogy a CIM csak a Windows 8 és a Server 2012 rendszeren érhető el, az előre haladó lépés ez az út.
Get-CimInstance -ClassName Win32_LogicalDisk
A Get-CimInstance használatakor a -ClassName paraméterhez lapfelsorolás is befejeződik, ami azt mutatja, hogy a továbblépés itt a Microsoft erőfeszítéseinek összpontosítása.
Valójában a WMI-t egy teljesen különálló csapat fejlesztette ki a Microsoft-ban, de ezt követően átvette a PowerShellért felelős emberek. Ők voltak azok, akik észrevették, hogy nagyon nehéz lesz megtisztítani a WMI hagyományait. A helyzet kijavítása érdekében a WMI-t és a CIM-et a WMI-t és a CIM-et a burkolat alatti használatával megpróbálják elérni. Az egyetlen módja annak, hogy ellenőrizze, hogy egy cmdlet egy csomagoló, ha megnézzük a dokumentációt. A Get-Hotfix cmdlet például egy csomagolás a Win32_QuickFixEngineering osztályhoz, amint az a dokumentációban látható.
Ez azt jelenti, hogy a gyorsjavításokat a távoli gépeken a Get-HotFix cmdlet használatával szerezheti be a WMI lekérdezés helyett.
Get-HotFix -számítógépnév localhost
Szóval ott van. Ne feledje, hogy ha van egy dedikált cmdlet, akkor mindig azt szeretné használni, amit a CIM követ, ha egy cmdlet nem létezik. Végül, ha minden más meghibásodik, vagy régebbi gépe van a környezetben, a WMI-t szeretné használni. Ez az, amire szükségem van erre az időre. Holnap találkozunk több PowerShell szórakozással.