WMI: tä ja sen uudempaa veljeä CIM: ää voidaan käyttää hallitsemaan Windows-koneita ympäristössäsi. Mutta tiedätkö ero niiden välillä? Liity mukaan katsomme.
Muista lukea sarjan aiemmat artikkelit:
- Opi kuinka automatisoida Windows PowerShellin avulla
- Cmdlettien käytön oppiminen PowerShellissä
- Objektien käytön oppiminen PowerShellissä
- Alustuksen, suodattamisen ja vertailun oppiminen PowerShellissä
- Opi käyttämään etäkäyttöä PowerShellissä
Ja pysy kuulolla koko viikon ajan.
esittely
WMI on Windows Management Instrumentation. Sana ”Instrumentaatio” viittaa siihen, että WMI antaa sinun saada tietoja tietokoneesi sisäisestä tilasta, aivan kuten auton kojelaudassa olevat instrumentit voivat hakea ja näyttää tietoja auton sisäisten komponenttien tilasta.
WMI koostuu arkistosta, joka sisältääluokat, jotka edustavat komponentteja, joita voidaan hallita koneesi sisällä. Tällä tarkoitamme vain sitä, että WMI: llä on Win32_Battery-luokka, se ei tarkoita, että koneessasi on akku. Nämä luokat voidaan sitten kysyä paikallisesti tai jopa verkon kautta, käyttämällä kyselykieltä, joka on hyvin samanlainen kuin SQL nimeltään WQL. WMI: n on kuitenkin tiedetty olevan erittäin epäluotettava, lähinnä sen takia, että se perustuu RPC: hen (Remote Procedure Call), joka tekee hulluja asioita niiden porttien kanssa, joissa he valitsevat kommunikoidakseen.
Windows 8 ja Server 2012 alkaen WMI onlopetetaan asteittain yhteisen tietomallin tai CIM: n hyväksi. Ainoa ero WMI: n ja CIM: n välillä on heidän käyttämät kuljetusprotokollat. WMI suorittaa kyselyjä Remote Procedure Call -sovellusten avulla, mutta CIM käyttää HTTP: tä, jolla näyttää olevan valtava ero. Taustalla he puhuvat edelleen samaan tietovarastoon.
WMI: n käyttö
Nopein ja helpoin tapa tutkiaWMI: n kautta käytettävissä olevat tiedot on kopioida ilmainen WMI-objektiselain. Pidämme tästä. Kun se on ladattu, ota se käyttöön ja sinulla on graafinen käyttöliittymä selataksesi WMI-luokkia.
Jos haluat tietää jotain tietokoneen levykonfiguraatiosta, paina Ctrl + F-näppäimistöyhdistelmää avataksesi hakukentän, kirjoita sitten “loginen levy” ja paina enter.
Heti tämä vie sinut luokkaan Win32_LogicalDisk.
Sovelluksen alaosassa voit nähdä, että meillä on kaksi luokan esiintymää.
Kun meillä on etsimäsi luokka, kysymme sitä PowerShellistä suoraan eteenpäin.
Get-WmiObject -Kysely “SELECT * FROM Win32_LogicalDisk”
En ole nähnyt sitä syntaksia hetkeksi ihmisten kanssa, jotka mieluummin käyttävät uutta parametroitua syntaksia.
Get-WmiObject - luokka Win32_LogicalDisk
Jos haluat saada tietoja toiselta verkon tietokoneelta, voit käyttää ComputerName-parametria.
Get-WmiObject -Luokka Win32_LogicalDisk -TietokoneNimi Viper - Valtuutettu viperadministraattori
CIM: n käyttö
Kun pidät mielessä, että CIM on saatavana vain Windows 8: lla ja Server 2012: lla, tämä on ehdottomasti tapa edetä.
Get-CimInstance –ClassName Win32_LogicalDisk
Välilehti suoritetaan loppuun myös -ClassName-parametrille, kun käytetään Get-CimInstance-sovellusta, mikä osoittaa, että eteenpäin tähän kohtaan Microsoft pyrkii keskittymään.
Itse asiassa WMI on kehitetty kokonaanerillinen tiimi Microsoftin sisällä, mutta sen jälkeen PowerShellistä vastaavat ihmiset ovat ottaneet sen haltuunsa. He huomasivat, että WMI: n jäljellä olevan sotkun puhdistaminen on erittäin vaikeaa. Yrittääkseen tilanteen korjaamisen he yrittävät tehdä WMI: n ja CIM: n saatavuudeksi kirjoittamalla WMI: tä ja CIM: ää käyttävät kääre cmdlet-koneet konepellin alle. Ainoa tapa tarkistaa, onko cmdlet kääre, on tarkastella asiakirjoja. Esimerkiksi Get-Hotfix-cmdlet on kääre Win32_QuickFixEngineering-luokalle, kuten asiakirjoista käy ilmi.
Tämä tarkoittaa, että voit saada etäkoneiden hotfix-korjaukset käyttämällä Get-HotFix-cmdlet-sovellusta WMI-kyselyn sijasta.
Get-HotFix –TietokoneNimi paikallinen palvelin
Joten siellä se on. Muista vain, että jos siellä on erillinen cmdlet, sinun on aina käytettävä sitä, jota seuraa CIM, jos cmdletiä ei ole. Lopuksi, jos kaikki muu epäonnistuu tai jos ympäristössäsi on vanhempia koneita, haluat käyttää WMI: tä. Se on kaikki mitä minulla on tällä kertaa. Nähdään huomenna lisää PowerShell-hauskaa.