If-Koubou

Geek-koulu: PowerShellin avulla saat tietokoneen tietoja

Geek-koulu: PowerShellin avulla saat tietokoneen tietoja (Miten)

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

Muista lukea sarjan aiemmat artikkelit:

  • Opi käyttämään automaattista Windowsia PowerShellillä
  • Learning käyttämään Cmdlets PowerShellissä
  • Oppiminen esineiden käyttämisessä PowerShellissä
  • Oppimisen muotoilu, suodatus ja vertailu PowerShellissä
  • Opi käyttämään etäisyyttä PowerShellissä

Ja pysy kuulolla koko sarjan koko viikon ajan.

esittely

WMI tarkoittaa Windows Management Instrumentationia. 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ää luokkia, 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.

Alkaen Windows 8 ja Server 2012, WMI poistuu asteittain yhteisen tietomallin tai CIM lyhyen. Ainoa ero WMI: n ja CIM: n välillä on niiden käyttämät kuljetusprotokollat. Vaikka 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 Browserista. Pidämme tästä. Kun olet ladannut, käynnistä se ja sinulla on graafinen käyttöliittymä selata WMI-luokkia.

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

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

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

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

Get-WmiObject -Query "VALITSE * FROM Win32_LogicalDisk"

En ole nähnyt, että syntaksi jonkin aikaa ihmisten kanssa näinä päivinä mieluummin käyttää uutta parametroitua syntaksia.

Get-WmiObject -Class Win32_LogicalDisk

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

Get-WmiObject -Class Win32_LogicalDisk -KomputerName Viper -Valenttinen viper \ ylläpitäjä

Käytä CIM: tä

Muista, 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

Lisäksi -ClassName -parametrin välilehdessä on myös välilehti, kun käytät Get-CimInstance -ohjelmaa, mikä osoittaa, että tämän 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 vastaan. 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.

Tämä tarkoittaa sitä, että saat hotfix-korjaukset etäkoneisiin käyttämällä Get-HotFix-cmdletä WMI-kyselyn sijasta.

Get-HotFix -ComputerName localhost

Joten sinä olet sitä. 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.