Početna » kako da » Geek škola pomoću PowerShell da biste dobili informacije o računalu

    Geek škola pomoću PowerShell da biste dobili informacije o računalu

    WMI i njegov noviji brat CIM mogu se koristiti za upravljanje Windows računalima u vašem okruženju. Ali znate li razliku između njih? Pridružite nam se kad pogledamo.

    Svakako pročitajte prethodne članke iz serije:

    • Saznajte kako automatizirati sustav Windows pomoću programa PowerShell
    • Učenje korištenja Cmdletova u PowerShell-u
    • Učenje korištenja objekata u programu PowerShell
    • Učenje oblikovanja, filtriranja i uspoređivanja u programu PowerShell
    • Naučite kako koristiti daljinski rad u programu PowerShell

    Ostanite u tijeku cijeli tjedan.

    Uvod

    WMI je kratica za Windows Management Instrumentation. Riječ "Instrumentation" odnosi se na činjenicu da vam WMI omogućuje dobivanje informacija o unutarnjem stanju vašeg računala, baš kao što instrumenti na upravljačkoj ploči vašeg automobila mogu dohvatiti i prikazati informacije o stanju unutarnjih komponenti automobila.

    WMI se sastoji od spremišta koje sadrži klase koje predstavljaju komponente kojima se može upravljati unutar vašeg računala. Pod time mislimo samo zato što WMI ima klasu Win32_Battery ne znači da vaš uređaj sadrži bateriju. Te klase mogu se zatim upitati za informacije lokalno ili čak preko mreže pomoću jezika upita koji je vrlo sličan SQL-u pod nazivom WQL. Međutim, poznato je da je WMI vrlo nepouzdan, uglavnom zbog činjenice da je zasnovan na RPC (Remote Procedure Calls), koji rade neke lude stvari s lukama za koje se odlučuju.

    Počevši od sustava Windows 8 i Server 2012, WMI se ukida u korist zajedničkog informacijskog modela ili CIM-a. Jedina razlika između WMI-ja i CIM-a su transportni protokoli koje koriste. Dok WMI izvodi upite pomoću udaljenih proceduralnih poziva, CIM koristi HTTP, što čini veliku razliku. Na pozadini još uvijek razgovaraju s istim spremištem informacija.

    Koristeći WMI

    Najbrži i najlakši način za istraživanje informacija dostupnih putem WMI-ja je da uzmete kopiju bilo kojeg slobodnog WMI preglednika objekata. Ovo nam se sviđa. Jednom preuzeto, ispalite ga i imat ćete grafičko sučelje za pregledavanje WMI klasa.

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

    Odmah će vas to odvesti u klasu Win32_LogicalDisk.

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

    Kada dobijemo klasu koju tražimo, upit iz PowerShell-a je ravno naprijed.

    Get-WmiObject -Query "SELECT * FROM Win32_LogicalDisk"

    Nisam vidio da je sintaksa za neko vrijeme s ljudima ovih dana radije koristiti novu parametrizirani sintaksu.

    Get-WmiObject -Class Win32_LogicalDisk

    Ako želite dobiti informacije s drugog računala na mreži, jednostavno možete upotrijebiti parametar ComputerName.

    Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper-ovlaštenik za vjerodostojnost

    Korištenje CIM-a

    Imajući na umu da je CIM dostupan samo na Windows 8 i Serveru 2012, kretanje naprijed ovo je definitivno način na koji treba ići.

    Get-CimInstance -ClassName Win32_LogicalDisk

    Tu je i dovršenje tabulatora za parametar -ClassName kada se koristi Get-CimInstance, što pokazuje da će naprijed u ovom trenutku Microsoftovi napori biti usmjereni.

    Zapravo, WMI je razvio potpuno odvojen tim unutar Microsofta, ali su ga kasnije preuzeli ljudi zaduženi za PowerShell. Oni su primijetili da će biti vrlo teško očistiti nered koji je WMI ostavio iza sebe. U pokušaju da popravi situaciju, oni pokušavaju učiniti WMI i CIM dostupnijima pisanjem cmdleta omotača koji koriste WMI i CIM ispod haube. Jedini način da provjerite je li cmdlet omot jest pregledavanje dokumentacije. Na primjer, cmdlet za Get-hotfix je omot za klasu Win32_QuickFixEngineering, kao što se vidi u dokumentaciji.

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

    Get-HotFix -ComputerName localhost

    Dakle, imate ga. Samo zapamtite da ako postoji namenski cmdlet, uvijek ćete ga htjeti koristiti, a nakon toga CIM bi trebao postojati ako cmdlet ne postoji. Konačno, ako sve ostalo ne uspije, ili ako u vašem okruženju imate starije strojeve, morat ćete koristiti WMI. To je sve što imam za ovo vrijeme. Vidimo se sutra za više PowerShell zabave.