If-Koubou

Škola Geek: Korištenje programa PowerShell da biste dobili informaciju o računalu

Škola Geek: Korištenje programa PowerShell da biste dobili informaciju o računalu (Kako da)

WMI i njegov noviji brat CIM mogu se koristiti za upravljanje Windows uređajima u vašem okruženju. Ali, znaš li razliku među njima? Pridružite nam se dok gledamo.

Obavezno pročitajte prethodne članke serije:

  • Saznajte kako automatizirati sustav Windows pomoću programa PowerShell
  • Učenje pomoću Cmdletsa u PowerShellu
  • Učenje kako koristiti objekte u PowerShellu
  • Oblikovanje učenja, filtriranje i uspoređivanje u PowerShellu
  • Saznajte kako koristiti Remoting u PowerShellu

I ostanite u tijeku cijele serije cijeli tjedan.

Uvod

WMI označava Windows Instrumentation za upravljanje. Riječ "Instrumentacija" odnosi se na činjenicu da vam WMI omogućuje da dobijete informacije o internom stanju vašeg računala, slično kao što su instrumenti instrumentalne ploče u vašem automobilu mogu dohvatiti i prikazati informacije o stanju internih komponenti vaših automobila.

WMI se sastoji od skladišta koji sadrži klase koje predstavljaju komponente koje se mogu upravljati unutar vašeg stroja. Ovime mislimo samo zato što WMI ima klase Win32_Battery ne znači da vaš stroj sadrži bateriju. Ove klase se zatim mogu upitati lokalno ili čak preko mreže pomoću jezika upita vrlo sličnog SQL-u nazvanom WQL. Međutim, WMI je poznato da je vrlo nepouzdano, uglavnom zbog činjenice da se temelji na RPC (Remote Procedure Call), koji čine neke lude stvari s lukama na kojima su odlučili komunicirati.

Počevši od sustava Windows 8 i Server 2012, WMI se ukida u korist zajedničkog informacijskog modela ili CIM-a kratko. Jedina razlika između WMI-a i CIM-a jest transportni protokoli koji koriste. Dok WMI provodi upite pomoću daljinskog postupka, CIM koristi HTTP, što čini se da čini veliku razliku. U pozadini još uvijek razgovaraju s istim spremištem informacija.

Upotreba WMI-a

Najbrži i najjednostavniji način istraživanja informacija koje vam je dostupan putem WMI-ja je da zgrabite kopiju bilo kojeg WMI Object Browsera. Sviđa mi se ovo. Nakon preuzimanja, pokrenite ga i imat ćete grafičko sučelje za pregledavanje WMI klase.

Ako želite saznati nešto o konfiguraciji diska računala, pritisnite kombinaciju tipkovnice Ctrl + F da biste pokrenuli okvir za pretraživanje, a zatim upišite "logicaldisk" i pritisnite enter.

Odmah vas to dovodi do klase Win32_LogicalDisk.

Na donjoj polovici aplikacije možete vidjeti da imamo dvije klase.

Jednom kada imamo klasu koju tražimo, upita ga iz PowerShell-a je ravno naprijed.

Get-WmiObject -Query "SELECT * FROM Win32_LogicalDisk"

Nisam vidio tu sintaksu neko vrijeme s ljudima koji ovih dana preferiraju upotrebu nove parametrizirane sintakse.

Get-WmiObject -Class Win32_LogicalDisk

Ako želite dobiti informacije s drugog računala na vašoj mreži, jednostavno upotrijebite parametar ComputerName.

Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper -Credential viper \ administrator

Upotreba CIM-a

Imajući na umu da je CIM dostupan samo za sustave Windows 8 i Server 2012, kretanje naprijed to je svakako način na koji možete ići.

Get-CimInstance -ClassName Win32_LogicalDisk

Tu je i završetak kartice za -ClassName parametar kada koristite Get-CimInstance, što pokazuje da je to naprijed to je mjesto gdje Microsoft napori biti usmjereni.

U stvari, WMI je razvio potpuno odvojeni tim unutar Microsofta, ali je naknadno preuzeto od strane ljudi koji su zaduženi za PowerShell. Oni su bili oni koji su primijetili da će biti vrlo teško očistiti zbrke WMI ostavljene iza sebe. U pokušaju da se otklone situacija, oni pokušavaju učiniti WMI i CIM dostupnima pisanjem cmdleta omotača koji koriste WMI i CIM ispod kapuljača. Jedini način da provjerite je li cmdlet omot je pogled na dokumentaciju. Na primjer, cmdlet Get-Hotfix je omot za klasu Win32_QuickFixEngineering, kako se vidi u dokumentaciji.

To znači da možete dobiti hitne popravke na udaljenim računalima koristeći Get-HotFix cmdlet umjesto WMI upita.

Get-HotFix -ComputerName localhost

Tako da ga imate. Samo zapamtite da ako postoji posvećeni cmdlet, uvijek ćete ga htjeti upotrijebiti, a slijedi ga CIM ako cmdlet ne postoji. Konačno, ako sve ostalo ne uspije ili imate starije strojeve u vašem okruženju, htjet ćete koristiti WMI. To je sve što imam za ovo vrijeme. Vidimo se sutra za više PowerShell zabave.