27Aug

Geek School: pomocí PowerShell získáte informace o počítači

click fraud protection

WMI a jeho novější bratr CIM mohou být použity ke správě strojů Windows ve vašem prostředí.Ale znáte rozdíl mezi nimi? Připojte se k nám, když se podíváme.

Ujistěte se, že jste si přečetli předchozí články v sérii:

  • Naučte se automatizovat systém Windows s PowerShell
  • Naučte se používat cmdlety v PowerShellu
  • Učení o použití objektů v PowerShellu
  • Formátování učení, filtrování a porovnávání v PowerShell
  • Naučte se používat Remoting inPowerShell

A zůstaňte na zbytek série celý týden.

Úvod

WMI znamená Windows Management Instrumentation. Slovo "Instrumentation" odkazuje na skutečnost, že služba WMI vám umožňuje získat informace o vnitřním stavu vašeho počítače, stejně jako nástroje palubní desky ve vašem voze mohou vyhledávat a zobrazovat informace o stavu vnitřních součástí vašeho vozu.

WMI se skládá z úložiště, které obsahuje třídy, které představují součásti, které lze ve vaší jednotce spravovat. To znamená, že WMI má třídu Win32_Battery, neznamená, že váš počítač obsahuje baterii. Tyto třídy lze poté dotazovat informace místně nebo dokonce přes síť pomocí jazyka dotazu velmi podobného SQL nazvaného WQL.Je však známo, že služba WMI je velmi nespolehlivá, většinou kvůli tomu, že je založena na RPC( vzdálené volání procedur), které dělají některé bláznivé věci s porty, na které se rozhodnou komunikovat.

instagram viewer

Počínaje operačním systémem Windows 8 a Server 2012 je služba WMI postupně ukončena ve prospěch společného informačního modelu nebo CIM.Jediný rozdíl mezi WMI a CIM je dopravní protokoly, které používají.Zatímco WMI provádí dotazy pomocí vzdálených volání procedur, CIM používá HTTP, což zřejmě dělá obrovský rozdíl. Na backendu stále mluví se stejným úložištěm informací.

Používání WMI

Nejrychlejší a nejjednodušší způsob, jak prozkoumat informace, které máte k dispozici prostřednictvím služby WMI, je získat kopii libovolného prohlížeče objektů WMI.Líbí se nám tohle. Jakmile je stažena, vypálíte ji a budete mít grafické rozhraní pro procházení tříd WMI.

obraz

Chcete-li se dozvědět něco o konfiguraci disku počítače, stiskněte klávesovou kombinaci Ctrl + F pro vyvolání vyhledávacího pole a zadejte "logicaldisk" a stiskněte klávesu enter.

obraz

Ihned vás přenese do třídy Win32_LogicalDisk.

obraz

V dolní polovině aplikace vidíte, že máme dvě instance třídy.

obraz

Jakmile budeme mít třídu, kterou hledáme, dotazování z PowerShell je přímo vpřed.

Získat-WmiObject -Query "SELECT * FROM Win32_LogicalDisk"

obraz

Tato syntaxe jsem zatím neviděl s lidmi, kteří dávají přednost použití nové parametrizované syntaxe.

Get-WmiObject -Class Win32_LogicalDisk

obraz

Chcete-li získat informace z jiného počítače v síti, můžete jednoduše použít parametr ComputerName.

Get-WmiObject - Třída Win32_LogicalDisk -ComputerName Viper -Credential viper \ administrátor

obraz

Použití CIM

Uvědomte si, že CIM je k dispozici pouze v systémech Windows 8 a Server 2012, je to určitě cesta.

Get-CimInstance -ClassName Win32_LogicalDisk

obraz

K dispozici je také dokončení tabulky pro parametr -ClassName při použití Get-CimInstance, což ukazuje, že vpřed je to místo, kde bude úsilí společnosti Microsoft zaměřeno.

Společnost WMI byla ve skutečnosti vyvinuta zcela samostatným týmem v rámci společnosti Microsoft, ale následně jej převzali lidé odpovědní za PowerShell. Byli to ti, kteří si všimli, že bude velmi těžké vyčistit špatnou práci WMI.Při pokusu o nápravu situace se pokoušejí zpřístupnit nástroje WMI a CIM psaním obalových výkresů, které používají WMI a CIM pod kapotou. Jediný způsob, jak zkontrolovat, zda je cmdlet obal, je prohlížení dokumentace. Například cmdlet Get-Hotfix je wrapper pro třídu Win32_QuickFixEngineering, jak je vidět v dokumentaci.

obraz

To znamená, že můžete získat opravy hotfix na vzdálených počítačích pomocí rutiny Get-HotFix namísto dotazu služby WMI.

Get-HotFix -ComputerName localhost

obraz

Takže to máte. Jen si pamatujte, že pokud je k dispozici vyhrazený cmdlet, budete jej vždy chtít použít, následovaný CIM, pokud cmdlet neexistuje. Konečně, pokud vše ostatní selže, nebo máte ve svém prostředí starší stroje, budete chtít použít službu WMI.To je všechno, co mám tentokrát. Uvidíme se zítra za další zábavu PowerShell.