Skip to main content

Geek School: Použitie PowerShell na získanie počítačových informácií

Geek School: Použitie PowerShell na získanie počítačových informácií

Geoffrey Carr

WMI a jeho novší brat CIM sa môžu používať na správu zariadení Windows vo vašom prostredí. Ale poznáte rozdiel medzi nimi? Pridajte sa k nám, keď sa pozrieme.

Nezabudnite si prečítať predchádzajúce články v sérii:

  • Naučte sa ako automatizovať systém Windows pomocou nástroja PowerShell
  • Naučiť sa používať Cmdlets v PowerShell
  • Učenie ako používať objekty v PowerShell
  • Formátovanie učenia, filtrovanie a porovnávanie v systéme PowerShell
  • Naučte sa používať Remoting v PowerShell

A zostávajte celú týždeň na zvyšok série.

úvod

Služba WMI znamená Windows Management Instrumentation. Slovo "Instrumentation" označuje skutočnosť, že služba WMI umožňuje získať informácie o vnútornom stave vášho počítača, podobne ako prístrojové dosky vo vašom aute dokážu získať a zobraziť informácie o stave vašich vnútorných komponentov.

Služba WMI pozostáva z úložiska, ktorý obsahuje triedy, ktoré predstavujú komponenty, ktoré by mohli byť spravované vo vašom počítači. To znamená, že práve preto, že služba WMI má triedu Win32_Battery, neznamená to, že váš počítač obsahuje batériu. Tieto triedy možno potom získať informácie lokálne alebo dokonca v sieti pomocou jazyka dotazu, ktorý je veľmi podobný SQLu nazývanému WQL. Služba WMI je však známa ako veľmi nespoľahlivá, hlavne preto, že je založená na RPC (Remote Procedure Calls), ktoré robia nejaké bláznivé veci s portami, na ktoré sa rozhodnú komunikovať.

Počínajúc Windows 8 a Serverom 2012, WMI sa postupne vyraďuje v prospech spoločného informačného modelu alebo CIM. Jediný rozdiel medzi službami WMI a CIM sú dopravné protokoly, ktoré používajú. Zatiaľ čo služba WMI vykonáva dopyty pomocou diaľkových procedúr, CIM používa protokol HTTP, ktorý sa javí ako obrovský rozdiel. Na backend stále rozprávajú s tým istým úložiskom informácií.

Používanie služby WMI

Najrýchlejší a najjednoduchší spôsob skúmania informácií, ktoré máte k dispozícii prostredníctvom služby WMI, je získať kópiu ľubovoľného bezplatného prehliadača objektov WMI. Toto sa nám páči. Po stiahnutí ho vypnite a budete mať grafické rozhranie na prehliadanie tried WMI.

Ak sa chcete dozvedieť niečo o konfigurácii disku počítača, stlačte kombináciu klávesov Ctrl + F, aby ste zobrazili vyhľadávacie pole a zadajte "logicaldisk" a stlačte kláves enter.

Ihneď sa dostanete do triedy Win32_LogicalDisk.

V dolnej polovici aplikácie môžete vidieť, že máme dve inštancie triedy.

Akonáhle budeme mať triedu, ktorú hľadáme, dotazovanie z PowerShell je rovno.

Get-WmiObject -Query “SELECT * FROM Win32_LogicalDisk”

Tento syntax som na chvíľu nevidel s ľuďmi, ktorí dávajú prednosť použitiu novej parametrizovanej syntaxe.

Get-WmiObject –Class Win32_LogicalDisk

Ak chcete získať informácie z iného počítača v sieti, môžete jednoducho použiť parameter ComputerName.

Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper –Credential viperadministrator

Používanie CIM

Majte na pamäti, že CIM je k dispozícii iba v systéme Windows 8 a Server 2012, vpred je to určite spôsob, ako ísť.

Get-CimInstance –ClassName Win32_LogicalDisk

K dispozícii je aj dokončenie karty pre parameter -ClassName pri použití Get-CimInstance, čo ukazuje, že v budúcnosti sa bude zameriavať úsilie spoločnosti Microsoft.

Spoločnosť WMI bola v skutočnosti vyvinutá úplne oddeleným tímom v spoločnosti Microsoft, ale následne ju prevzali ľudia zodpovední za PowerShell. Boli to tí, ktorí si všimli, že bude veľmi ťažké vyčistiť neporiadok WMI za sebou. Pri pokuse o nápravu situácie sa pokúšajú sprístupniť nástroje WMI a CIM ďalším písaním obalových rutín, ktoré používajú WMI a CIM pod kapotou. Jediný spôsob, ako skontrolovať, či je cmdlet obal, je preskúmanie dokumentácie. Napríklad cmdlet Get-Hotfix je obal pre triedu Win32_QuickFixEngineering, ako je vidieť v dokumentácii.

To znamená, že môžete získať opravy hotfix na vzdialených počítačoch pomocou rutiny Get-HotFix namiesto dotazu WMI.

Get-HotFix –ComputerName localhost

Tak to tu máte. Len si pamätajte, že ak je určený cmdlet, budete ho vždy chcieť použiť, a potom by ste mali použiť CIM, ak by neexistoval cmdlet. Nakoniec, ak všetko ostatné zlyhá, alebo máte staršie stroje vo vašom prostredí, budete chcieť použiť WMI. To je všetko, čo mám pre tento čas. Uvidíme sa zajtra viac za zábavu PowerShell.

Link
Plus
Send
Send
Pin