Geek Šola Uporaba PowerShell priti Computer Information
WMI in njegov novejši brat CIM se lahko uporabljata za upravljanje strojev Windows v vašem okolju. Toda ali veste, kakšna je razlika med njimi? Pridružite se nam, ko pogledamo.
Preberite prejšnje članke v seriji:
- Naučite se avtomatizirati Windows s PowerShell
- Učenje uporabe ukaznih vrstic v PowerShell
- Učenje uporabe objektov v programu PowerShell
- Učenje oblikovanja, filtriranja in primerjave v programu PowerShell
- Naučite se uporabljati možnost Remoting v PowerShell
In ostanite z nami do konca tedna.
Uvod
WMI je kratica za Windows Management Instrumentation. Beseda »Instrumentacija« se nanaša na dejstvo, da vam WMI omogoča pridobivanje informacij o notranjem stanju računalnika, podobno kot instrumenti na armaturni plošči v vašem avtomobilu, da lahko pridobijo in prikažejo informacije o stanju notranjih komponent vaših avtomobilov..
WMI je sestavljen iz skladišča, ki vsebuje razrede, ki predstavljajo komponente, s katerimi se lahko upravlja v vašem računalniku. S tem mislimo samo zato, ker ima WMI razred Win32_Battery, ne pomeni, da naprava vsebuje baterijo. Te razrede lahko nato poizvedujemo za informacije lokalno ali celo v omrežju z uporabo jezika poizvedbe, ki je zelo podoben SQL, imenovanemu WQL. Vendar pa je bilo znano, da je WMI zelo nezanesljiv, večinoma zaradi dejstva, da temelji na RPC (oddaljenih proceduralnih klicih), ki s pristanišči, ki jih želijo komunicirati, delajo nekatere nore stvari..
Začenši z operacijskim sistemom Windows 8 in strežnikom 2012, se WMI ukinja v korist skupnega informacijskega modela ali skrajšanega CIM. Edina razlika med WMI in CIM je v transportnih protokolih, ki jih uporabljajo. Medtem ko WMI izvaja poizvedbe z uporabo oddaljenih postopkovnih klicev, CIM uporablja HTTP, kar je zelo pomembno. Na hrbtni strani še vedno govorijo z istim skladiščem informacij.
Uporaba WMI
Najhitrejši in najpreprostejši način za iskanje informacij, ki so vam na voljo prek WMI, je, da vzamete kopijo katerega koli prostega brskalnika objektov WMI. Ta nam je všeč. Ko jo prenesete, ga zaženite in imate grafični vmesnik za brskanje po razredih WMI.
Če želite izvedeti nekaj o konfiguraciji diska računalnika, pritisnite kombinacijo tipkovnice Ctrl + F, da prikličete iskalno polje, nato vnesite »logicaldisk« in pritisnite enter.
Takoj vas bo to pripeljalo do razreda Win32_LogicalDisk.
Na spodnji polovici aplikacije lahko vidite, da imamo dva primera razreda.
Ko dobimo razred, ki ga iščemo, ga poizvedujemo iz PowerShell.
Get-WmiObject -Query »SELECT * FROM Win32_LogicalDisk«
Takšne sintakse še nisem videl z ljudmi, ki raje uporabljajo novo parametrizirano sintakso.
Get-WmiObject -Class Win32_LogicalDisk
Če želite informacije iz drugega računalnika v omrežju, lahko preprosto uporabite parameter ComputerName.
Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper-skrbnik poverilnic
Uporaba CIM
Upoštevajoč, da je CIM na voljo samo v operacijskih sistemih Windows 8 in Server 2012, je napredovanje to zagotovo pot.
Get-CimInstance -ClassName Win32_LogicalDisk
Obstaja tudi zaključek zavihka za parameter -ClassName pri uporabi programa Get-CimInstance, kar kaže, da bo nadaljevanje tega usmerjanja usmerjeno v Microsoftova prizadevanja..
V bistvu je WMI razvila popolnoma ločena ekipa v Microsoftu, vendar so jo nato prevzeli ljudje, ki so odgovorni za PowerShell. Bili so tisti, ki so opazili, da bo zelo težko očistiti nered, ki jo je pustil WMI. V poskusu, da bi popravili situacijo, poskušajo WMI in CIM narediti bolj dostopne s pisanjem cmdletov za ovoj, ki uporabljajo WMI in CIM pod pokrovom. Edini način, da preverite, ali je cmdlet ovojnica, je pogled na dokumentacijo. Na primer, cmdlet za Get-hotfix je ovoj za razred Win32_QuickFixEngineering, kot je prikazano v dokumentaciji.
To pomeni, da lahko hitre popravke dobite na oddaljenih računalnikih s pomočjo cmdleta Get-HotFix namesto poizvedbe WMI.
Get-HotFix -ComputerName localhost
Torej ga imate. Zapomnite si, da če je namenska ukazna vrstica za ukaz »cmdlet«, jo boste vedno želeli uporabiti, čemur sledi CIM, če ukaz »cmdlet« ne obstaja. Če vse drugo ne uspe ali če imate v svojem okolju starejše stroje, boste želeli uporabljati WMI. To je vse, kar imam za ta čas. Se vidimo jutri za več zabave PowerShell.