Pagrindinis » kaip » „Geek“ mokykla, naudodama „PowerShell“ kompiuterio informaciją

    „Geek“ mokykla, naudodama „PowerShell“ kompiuterio informaciją

    „WMI“ ir jos naujesnis brolis CIM gali būti naudojami „Windows“ mašinų valdymui jūsų aplinkoje. Bet ar žinote jų skirtumą? Prisijunkite prie mūsų, kaip mes žiūrime.

    Būtinai perskaitykite ankstesnius serijos straipsnius:

    • Sužinokite, kaip automatizuoti „Windows“ su „PowerShell“
    • Mokymasis naudoti „Cmdlet“ „PowerShell“
    • Mokymasis naudotis objektais „PowerShell“
    • Mokymosi formatavimas, filtravimas ir palyginimas „PowerShell“
    • Sužinokite, kaip naudoti „Remoting“ „PowerShell“

    Visą savaitę laikykitės likusios serijos.

    Įvadas

    WMI reiškia „Windows Management Instrumentation“. Žodis „Instrumentuotė“ reiškia tai, kad WMI leidžia jums gauti informaciją apie kompiuterio vidinę būseną, panašiai kaip jūsų automobilio prietaisų skydelio prietaisai gali gauti ir rodyti informaciją apie jūsų automobilio vidinių komponentų būklę.

    WMI susideda iš saugyklos, kurioje yra klasių, sudarančių komponentus, kuriuos galima valdyti jūsų įrenginyje. Tai reiškia, kad WMI turi Win32_Battery klasę, nereiškia, kad jūsų įrenginyje yra baterija. Tuomet šios klasės gali būti užklausiamos dėl informacijos vietos ar net per tinklą, naudojant užklausų kalbą, labai panašią į SQL, vadinamą WQL. Tačiau žinoma, kad WMI yra labai nepatikima, daugiausia dėl to, kad ji pagrįsta RPC (nuotolinių procedūrų kvietimais), kurie daro kai kuriuos beprotiškus dalykus su uostais, kuriuos jie pasirenka bendrauti.

    Pradedant nuo „Windows 8“ ir „Server 2012“, WMI palaipsniui panaikinama „Common Information Model“ arba „CIM“. Vienintelis skirtumas tarp WMI ir CIM yra naudojamų transporto protokolų. Nors WMI atlieka užklausas naudodama „Remote Procedure Calls“, „CIM“ naudoja HTTP, kuris, atrodo, daro didžiulį skirtumą. Backend'e jie vis dar kalba su ta pačia informacijos saugykla.

    WMI naudojimas

    Greičiausias ir paprasčiausias būdas susipažinti su turima informacija per WMI yra paimti bet kokio nemokamo WMI objekto naršyklės kopiją. Mums patinka šis. Atsisiųsdavę jį užsidegite ir turėsite grafinę sąsają WMI klasėms naršyti.

    Jei norite sužinoti kažką apie kompiuterio disko konfigūraciją, paspauskite Ctrl + F klaviatūros derinį, kad pamatytumėte paieškos laukelį, tada įveskite „logicaldisk“ ir paspauskite enter.

    Iškart jus nuvyksite į Win32_LogicalDisk klasę.

    Apatinėje programos dalyje matote, kad turime du klasės egzempliorius.

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

    Get-WmiObject -Query „SELECT * FROM Win32_LogicalDisk“

    Aš nemačiau tos sintaksės, kol žmonės su šiomis dienomis pirmenybę teikia naujoms parametruojamoms sintaksėms.

    Get-WmiObjectClass Win32_LogicalDisk

    Jei norite gauti informaciją iš kito kompiuterio jūsų tinkle, galite naudoti parametrą ComputerName.

    „Get-WmiObject“ klasė „Win32_LogicalDisk“ - kompiuterio pavadinimas „Viper“

    Naudojant CIM

    Turint omenyje, kad CIM yra prieinama tik „Windows 8“ ir „Server 2012“, judant į priekį tai tikrai yra kelias.

    Get-CimInstance -ClassName Win32_LogicalDisk

    Naudojant „Get-CimInstance“ yra ir „ClassName“ parametro skirtukas, kuris rodo, kad „Microsoft“ pastangos bus sutelktos į priekį..

    Tiesą sakant, WMI sukūrė visiškai atskira „Microsoft“ komanda, bet vėliau ją perėmė žmonės, atsakingi už „PowerShell“. Jie buvo tie, kurie pastebėjo, kad bus labai sunku išvalyti netinkamą WMI. Siekdami ištaisyti situaciją, jie bando padaryti WMI ir CIM daugiau prieinamus rašydami cmdlet'us, kurie naudoja WMI ir CIM po gaubtu. Vienintelis būdas patikrinti, ar cmdlet yra įvynioklis, yra žiūrint į dokumentus. Pavyzdžiui, „Get-Hotfix“ cmdlet yra „Win32_QuickFixEngineering“ klasės pakuotė, kaip matyti dokumentuose.

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

    „Get-HotFix“ - kompiuterio pavadinimas localhost

    Taigi jūs turite tai. Nepamirškite, kad jei yra specialus „cmdlet“, jūs visada norėsite jį naudoti, po to CIM, jei cmdlet neegzistuoja. Galiausiai, jei visa kita nepavyksta, arba jūs turite senesnių mašinų savo aplinkoje, jūs norite naudoti WMI. Tai viskas, ką turiu šiam laikui. Rytoj jus pamatysite daugiau „PowerShell“ malonumo.