27Aug

Geeko mokykla: "PowerShell" naudojimas gauti kompiuterio informaciją

WMI ir jo naujojo brolio CIM gali būti naudojami tvarkyti Windows sistemas jūsų aplinkoje. Bet ar žinote skirtumą tarp jų?Prisijunkite prie mūsų, kai pažvelgsime.

Būtinai perskaitykite ankstesnius serijos straipsnius:

  • Sužinokite, kaip automatizuoti "Windows" su "PowerShell"
  • . Mokytis naudotis "PowerShell" "PowerShell"
  • kompiliacijomis. Mokymasis naudoti objektus "PowerShell"
  • mokymosi formatavimas, filtravimas ir palyginimas "PowerShell"
  • . Sužinokite, kaip naudoti "Remoting""PowerShell"

. Visą savaitę palaikykite ryšį su likusia serija.

Įvadas

WMI reiškia "Windows Management Instrumentation".Žodis "Instrumentation" reiškia, kad WMI leidžia jums gauti informacijos apie jūsų kompiuterio vidinę būseną, taip pat kaip ir jūsų automobilio prietaisų skydo prietaisai, galite gauti ir rodyti informaciją apie jūsų automobilio vidaus komponentų būklę.

WMI susideda iš saugyklos, kurioje yra klasių, atstovaujančių komponentams, kurie gali būti valdomi jūsų kompiuteryje. Tai reiškia, kad tik todėl, kad WMI turi "Win32_Battery" klasę, nereiškia, kad jūsų kompiuteryje yra baterijos. Tada šios klasės gali būti užduodamos užklausai vietoje arba netgi per tinklą, naudojant užklausų kalbą, labai panašią į SQL vadinamą WQL.Tačiau WMI buvo labai nepatikimas, daugiausia dėl to, kad jis grindžiamas RPC( nuotolinės procedūros skambučiais), kurie kai kuriuos uostus nori bendrauti.

Pradedant nuo "Windows 8" ir "Server 2012", WMI palaipsniui atsisakoma bendro informacinio modelio ar CIM pranašumo. Vienintelis skirtumas tarp WMI ir CIM yra transporto protokolai, kuriuos jie naudoja. Nors WMI atlieka užklausas naudodamas nuotolinius procedūrų skambučius, CIM naudoja HTTP, o tai, atrodo, daro didelį skirtumą.Dakte jie vis dar kalba su ta pačia informacijos saugykla.

Naudojant WMI

Greičiausias ir paprasčiausias būdas ištirti informaciją, kurią galite gauti naudodamiesi WMI, yra patraukti bet kokio nemokamo WMI objekto naršyklės kopiją.Mums tai patinka. Kai atsisiųsite, išverskite jį ir turėsite grafinę sąsają, kad galėtumėte naršyti WMI klases.

vaizdas

Jei norite sužinoti kažką apie kompiuterio disko konfigūraciją, paspauskite Ctrl + F klaviatūros kombinaciją, kad būtų rodomas paieškos laukelis, tada įveskite "logicaldisk" ir paspauskite enter.

vaizdas

Iš karto tai pateks į "Win32_LogicalDisk" klasę.

vaizdas

Apatinėje programos pusėje galite pamatyti, kad turime du klasės egzempliorius.

vaizdas

Kai mes turime klasę, kurią ieškome, užklausa iš "PowerShell" yra tiesiai į priekį.

Get-WmiObject -Query "SELECT * FROM Win32_LogicalDisk"

vaizdas

Aš šia sintaksė nematė, nes žmonės šiais laikais nori naudoti naują parametrų sintaksę.

Get-WmiObject-Class Win32_LogicalDisk

vaizdas

Jei norite gauti informaciją iš kito kompiuterio savo tinkle, galite tiesiog naudoti parametrą "ComputerName".

Get-WmiObject-klasė Win32_LogicalDisk -ComputerName Viper-kredencialus viper \ administratorius

vaizdas

Naudojant CIM

Atsižvelgiant į tai, kad CIM yra pasiekiama tik "Windows 8" ir "Server 2012", tai yra neabejotinai kelias.

Get-CimInstance-ClassName Win32_LogicalDisk

vaizdas

Taip pat yra skirtuko užbaigimas parametro-ClassName, naudojant "Get-CimInstance", o tai rodo, kad "Microsoft" pastangos bus nukreiptos į priekį.

Iš tiesų WMI buvo sukurta visiškai atskira komanda "Microsoft", bet vėliau ją perėmė žmonės, atsakingi už "PowerShell".Jie buvo tie, kurie pastebėjo, kad bus labai sunku išvalyti netvarkingą WMI palikimą.Siekdami ištaisyti padėtį, jie bando dar labiau susipažinti su WMI ir CIM, rašydami paketų cmdletus, naudojančius WMI ir CIM po gaubtu. Vienintelis būdas patikrinti, ar cmdlet yra aplankas yra žiūrint į dokumentus. Pavyzdžiui, "Get-Hotfix" cmdlet yra "Win32_QuickFixEngineering" klasės aplinka, kaip matyti iš dokumentacijos.

vaizdas

Tai reiškia, kad galite gauti karštąsias pataisas nuotolinėse mašinose naudodami "Get-HotFix" cmdlet, o ne WMI užklausą.

Get-HotFix -ComputerName localhost

vaizdas

Taigi, jūs turite tai. Tiesiog nepamirškite, kad jei yra speciali cmdlet, visada norėsite ją naudoti, o po to CIM turėtų būti cmdlet, kurio nėra. Galiausiai, jei viskas nepavyks arba jūsų aplinkoje yra senesnės mašinos, norėsite naudoti WMI.Tai viskas, ką turiu šiuo metu. Rytoj pamatysite daugiau "PowerShell" linksmybių.