Geek School Použitie PowerShell získať informácie o počítači
WMI a jeho novší brat CIM sa môžu používať na správu systémov Windows vo vašom prostredí. Ale poznáš 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 o používaní objektov v systéme 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 seriálu.
ú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 vnútorných komponentov vášho auta.
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 cez sieť 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á, väčšinou kvôli tomu, ž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 HTTP, čo zrejme spôsobuje 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. Páči sa nám to. Po stiahnutí ho vypnite a budete mať grafické rozhranie na prehliadanie tried WMI.
Ak chcete zistiť niečo o konfigurácii disku počítača, stlačte klávesovú kombináciu Ctrl + F, aby ste vynorili 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, preberanie z PowerShell je priamočiare.
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 - Trieda 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 - Trieda Win32_LogicalDisk -ComputerName Viper -Credential viper \ administrátor
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 cesta.
Get-CimInstance -ClassName Win32_LogicalDisk
K dispozícii je tiež dokončenie karty pre parameter -ClassName pri použití Get-CimInstance, čo ukazuje, že v budúcnosti je to miesto, kde bude úsilie spoločnosti Microsoft zamerané.
Spoločnosť WMI bola v skutočnosti vyvinutá úplne oddeleným tímom v rámci 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, ktorý zanechal. 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 prezeranie 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žívať, 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 na ďalšiu zábavu PowerShell.