Geek-koulu, joka käyttää PowerShellia tietokoneen tietoihin
WMI: tä ja sen uudempaa veljeä CIM voi käyttää sekä Windows-koneiden hallintaan ympäristössä. Mutta tiedätkö eroa niiden välillä? Liity meihin, kun katsomme.
Muista lukea sarjan aiemmat artikkelit:
- Opi automatisoimaan Windows PowerShellillä
- Oppiminen käyttämään Cmdlet-tiedostoja PowerShellissä
- Opi käyttämään esineitä PowerShellissä
- Oppimisen muotoilu, suodatus ja vertailu PowerShellissa
- Opi käyttämään Remotingia PowerShellissä
Ja pysy kuulolla koko sarjan koko viikon ajan.
esittely
WMI tarkoittaa Windows Management Instrumentation -ohjelmaa. Sana "Instrumentointi" viittaa siihen, että WMI: n avulla voit saada tietoa tietokoneen sisäisestä tilasta, kuten autosi kojelauta-instrumentit voivat hakea ja näyttää tietoja autosi sisäisten osien tilasta..
WMI koostuu arkistosta, joka sisältää luokkia, jotka edustavat komponentteja, joita voit hallita laitteessasi. Tällä tarkoitetaan vain siksi, että WMI: llä on Win32_Battery-luokka, ei tarkoita, että laitteessa on akku. Nämä luokat voidaan sitten kysyä informaatiolta paikallisesti tai jopa verkon kautta käyttämällä kyselykieliä, joka on hyvin samanlainen kuin SQL nimeltään WQL. WMI: n tiedetään kuitenkin olevan erittäin epäluotettava, lähinnä siksi, että se perustuu RPC: hen (Remote Procedure Calls), joka tekee joitakin hulluja asioita niiden satamien kanssa, joista he haluavat kommunikoida.
Windows 8: sta ja Server 2012: stä lähtien WMI poistetaan käytöstä yleisen tietomallin tai CIM: n hyväksi. Ainoa ero WMI: n ja CIM: n välillä on niiden käyttämät kuljetusprotokollat. Vaikka WMI suorittaa kyselyjä etäkäytäntöpuhelujen avulla, CIM käyttää HTTP: tä, joka näyttää olevan valtava ero. Taustalla he puhuvat edelleen samasta tietovarastosta.
WMI: n käyttäminen
Nopein ja helpoin tapa tutustua WMI: n kautta käytettävissä oleviin tietoihin on kopioida ilmainen WMI Object Browser. Me pidämme tästä. Kun tiedosto on ladattu, voit tulostaa sen ja sinulla on graafinen käyttöliittymä WMI-luokkien selaamiseen.
Jos haluat tietää jotain tietokoneen levykonfiguraatiosta, paina Ctrl + F -näppäimistöyhdistelmää avataksesi hakukentän ja kirjoita sitten "logicaldisk" ja paina enter-näppäintä..
Heti tämä vie sinut Win32_LogicalDisk-luokkaan.
Sovelluksen alaosassa näet, että meillä on kaksi luokkaa.
Kun meillä on luokkamme, jota etsimme, kysely sitä PowerShelliltä on suoraan eteenpäin.
Get-WmiObject -Query “SELECT * FROM Win32_LogicalDisk”
En ole nähnyt tätä syntaksia jonkin aikaa ihmisten kanssa näinä päivinä mieluummin käyttää uutta parametrisoitua syntaksi.
Get-WmiObject-luokka Win32_LogicalDisk
Jos haluat saada tiedot toisesta verkon tietokoneesta, voit käyttää ComputerName-parametria.
Get-WmiObject-luokka Win32_LogicalDisk -tietokoneen nimi Viper -valtuutettu viperi \ t
Käyttämällä CIM
Pidä mielessä, että CIM on käytettävissä vain Windows 8: ssa ja Server 2012: ssä, eteenpäin siirtyminen on varmasti tie.
Get-CimInstance -ClassName Win32_LogicalDisk
-ClassName-parametri on myös välilehdellä, kun käytät Get-CimInstancea..
Itse asiassa WMI: n on kehittänyt täysin erillinen tiimi Microsoftissa, mutta sen jälkeen PowerShellin vastuuhenkilöt ovat ottaneet ne käyttöön. He olivat niitä, jotka huomasivat, että on hyvin vaikeaa puhdistaa WMI: n jälkeinen sotku. Tilanteen korjaamiseksi he yrittävät tehdä WMI: n ja CIM: n entistä helpommin kirjoittamalla kääreissä olevat cmdletit, jotka käyttävät WMI: tä ja CIM: ää hupun alla. Ainoa tapa tarkistaa, onko cmdlet kääre, katsomalla dokumentaatiota. Esimerkiksi Get-Hotfix-cmdlet on Win32_QuickFixEngineering-luokan kääre, kuten dokumentaatiosta käy ilmi..
Tämä tarkoittaa, että voit saada hotfix-korjaukset etäkoneissa käyttämällä WMI-kyselyn sijasta Get-HotFix-cmdlet-sovellusta.
Get-HotFix -tietokoneen nimi localhost
Joten sinulla on se. Muista, että jos sinulla on oma cmdlet, haluat aina käyttää sitä, CIM: n jälkeen, jos cmdlet ei ole olemassa. Lopuksi, jos kaikki muu epäonnistuu tai sinulla on ympäristössä vanhempia koneita, haluat käyttää WMI: tä. Se on kaikki, mitä minulla on tähän aikaan. Nähdään huomenna lisää PowerShellin hauskaa.