27Aug

Geek-koulu: PowerShellin avulla saat tietokoneen tietoja

WMI ja sen uudempi veli CIM voidaan sekä hallita Windows-koneita omassa ympäristössä.Mutta tiedätkö niiden välisen eron? Liity mukaan, kun katsomme.

Lue lukemassa aiemmat artikkelit sarjasta:

  • Opi käyttämään Windowsia PowerShell-ohjelmistolla
  • Oppimista käyttämään PowerMax-tiedostoja PowerShellissä
  • Oppiminen PowerShell-objektin käyttämisessä
  • Oppimismuotoilu, suodatus ja vertailu PowerShellissä
  • Opi käyttämään etäisyyttäPowerShell

Ja pysy kuulolla koko sarjan koko viikon ajan.

Johdanto

WMI on Windows Management Instrumentation. Sanalla "Instrumentation" viitataan siihen, että WMI: n avulla voit saada tietoja tietokoneen sisäisestä tilasta, aivan kuten auton kojelauta-instrumentit voivat hakea ja näyttää tietoja autonsa sisäisistä osista.

WMI koostuu arkistosta, joka sisältää luokat, jotka edustavat komponentteja, joita voidaan hallita koneessasi. Tällä tarkoitamme vain sitä, että WMI: llä on Win32_Battery-luokka, ei tarkoita sitä, että koneessa on akku. Näitä luokkia voidaan sitten kysellä paikallisesti tai jopa koko verkon kautta käyttämällä kyselykieltä, joka on hyvin samanlainen kuin WQL: n SQL-käsite. WMI: n tiedetään kuitenkin olevan erittäin epäluotettava, mikä johtuu pääasiassa siitä, että se perustuu RPC: hen( Remote Procedure Calls), jotka tekevät joitain hulluja asioita niiden satamien kanssa, joista he haluavat kommunikoida.

Windows 8 ja Server 2012 alkaen WMI poistuu asteittain yhteisen tietomallin tai CIM: n puolesta lyhyeksi. Ainoa ero WMI: n ja CIM: n välillä on niiden käyttämät kuljetusprotokollat. Kun WMI suorittaa kyselyt Remote Procedure Call -toiminnon avulla, CIM käyttää HTTP: tä, joka vaikuttaa vaikuttavan valtavasta erosta. Taustalla ne puhuvat edelleen samaan tietovarastoon.

WMI: n käyttäminen

Nopein ja helpoin tapa tutustua WMI: n kautta käytettävissä oleviin tietoihin on napata kopio kaikista vapaista WMI Object Browser -ohjelmista. Pidämme tästä.Kun olet ladannut, käynnistä se ja sinulla on graafinen käyttöliittymä selata WMI-luokkia.

kuva

Jos haluat tietää jotain tietokoneen levykokoonpanosta, paina Ctrl + F-näppäimistön yhdistelmää, niin saat hakukentän, kirjoita sitten "logicaldisk" ja paina enter.

kuva

Välittömästi tämä vie sinut Win32_LogicalDisk-luokkaan.

kuva

Sovelluksen alareunasta näet, että meillä on kaksi esimerkkiä luokasta.

kuva

Kun meillä on haluamamme luokka, kysely PowerShellistä on suoraan eteenpäin.

Get-WmiObject -Query "SELECT * FROM Win32_LogicalDisk"

kuva

En ole nähnyt syntaksia jonkin aikaa ihmisten kanssa, jotka nykyään haluavat käyttää uutta parametroitua syntaksia.

Get-WmiObject -Class Win32_LogicalDisk

kuva

Jos haluat saada tietoja toiselta tietokoneeltasi verkosta, voit vain käyttää ComputerName-parametria.

Get-WmiObject -Class Win32_LogicalDisk -KomputerName Viper -Credential viper \ järjestelmänvalvoja

kuva

CIM: n käyttäminen

Muistathan, että CIM on käytettävissä vain Windows 8: ssa ja Server 2012: ssa, eteenpäin tämä on ehdottomasti tapa lähteä.

Get-CimInstance -ClassName Win32_LogicalDisk

kuva

-ClassName -parametrilla on myös välilehti, kun käytät Get-CimInstance -ohjelmaa, mikä osoittaa, että tässä eteenpäin Microsoftin ponnistelut keskitetään.

Itse asiassa WMI on kehittänyt täysin erillinen tiimi Microsoftissa, mutta PowerShellin vastuulla olevat ihmiset ovat sen jälkeen ottaneet sen käyttöön. He olivat niitä, jotka huomasivat, että on vaikea puhdistaa WMI: n jäljessä olevaa sotkua. Yritettäessä korjata tilannetta he yrittävät tehdä WMI: stä ja CIM: stä enemmän saatavissa kirjoittamalla kääreen cmdletteja, jotka käyttävät WMI: tä ja CIM: tä huuvan alle. Ainoa tapa tarkistaa, onko cmdlet kääre on tarkastelemalla dokumentaatiota. Esimerkiksi Get-Hotfix-cmdlet on Win32_QuickFixEngineering-luokan kääre, joka näkyy dokumentaatiossa.

kuva

Tämä tarkoittaa sitä, että saat hotfix-korjaukset etätietokoneilta Get-HotFix-cmdletin avulla WMI-kyselyn sijaan.

Get-HotFix -ComputerName localhost

kuva

Joten sinulla on se. Muista vain, että jos on olemassa erityinen cmdlet haluat aina käyttää sitä, jota seuraa CIM, jos cmdlet ei ole olemassa. Lopuksi, jos kaikki muu epäonnistuu tai sinulla on vanhempi kone omassa ympäristöstänne, haluat käyttää WMI: tä.Se on kaikki, mitä minulla on tällä kertaa. Nähdään huomenna lisää PowerShell hauskaa.