Geek skola, izmantojot PowerShell, lai iegūtu informāciju par datoru
WMI un tā jaunāko brāli CIM var izmantot, lai pārvaldītu Windows iekārtas jūsu vidē. Bet vai jūs zināt atšķirību starp viņiem? Pievienojieties mums, skatoties.
Noteikti izlasiet iepriekšējos sērijas rakstus:
- Uzziniet, kā automatizēt Windows ar PowerShell
- Mācīšanās lietot Cmdlet PowerShell
- Mācīšanās lietot objektus PowerShell
- Mācību formatēšana, filtrēšana un salīdzināšana programmā PowerShell
- Uzziniet, kā lietot Remoting PowerShell
Un visu nedēļu palieciet pārējo sēriju.
Ievads
WMI nozīmē Windows Management Instrumentation. Vārds „Instrumentācija” attiecas uz faktu, ka WMI ļauj iegūt informāciju par datora iekšējo stāvokli, līdzīgi kā jūsu automašīnas vadības paneļa instrumenti var iegūt un parādīt informāciju par jūsu automašīnas iekšējo komponentu stāvokli.
WMI sastāv no repozitorija, kurā ir klases, kas pārstāv komponentus, kurus var pārvaldīt jūsu datorā. Ar to mēs domājam tikai tāpēc, ka WMI ir Win32_Battery klase nenozīmē, ka jūsu mašīna satur akumulatoru. Šīs klases pēc tam var vaicāt par informāciju lokāli vai pat tīklā, izmantojot vaicājuma valodu, kas ir ļoti līdzīga SQL nosaukumam WQL. Tomēr WMI ir zināms, ka tā ir ļoti neuzticama, galvenokārt tāpēc, ka tā ir balstīta uz RPC (attālās procedūras zvani), kas dara zināmas trakas lietas ar ostām, par kurām viņi izvēlas sazināties.
Sākot ar Windows 8 un Server 2012, WMI tiek pārtraukta par labu kopējam informācijas modelim vai CIM. Vienīgā atšķirība starp WMI un CIM ir transporta protokoli, ko tie izmanto. Lai gan WMI veic vaicājumus, izmantojot attālās procedūras zvanus, CIM izmanto HTTP, kas, šķiet, ir milzīga atšķirība. Uz aizmugures tie joprojām runā ar to pašu informācijas krātuvi.
WMI izmantošana
Ātrākais un vienkāršākais veids, kā izpētīt jums pieejamo informāciju, izmantojot WMI, ir nokļūt jebkura bezmaksas WMI Object Browser kopijā. Mums tas patīk. Kad esat lejupielādējis, uzlādējiet to un jums būs grafiskais interfeiss, lai pārlūkotu WMI klases.
Ja vēlaties uzzināt kaut ko par datora diska konfigurāciju, nospiediet Ctrl + F tastatūras kombināciju, lai atvērtu meklēšanas lodziņu, pēc tam ierakstiet “logicaldisk” un nospiediet enter.
Uzreiz tas aizvedīs uz Win32_LogicalDisk klasi.
Pieteikuma apakšējā daļā redzams, ka mums ir divi klases gadījumi.
Kad mums būs klase, kuru mēs meklējam, vaicājot no PowerShell, tas ir taisni uz priekšu.
Get-WmiObject -Query “SELECT * FROM Win32_LogicalDisk”
Es neesmu redzējis šo sintaksi kādu laiku, kad cilvēki šajās dienās dod priekšroku izmantot jauno parametrizēto sintaksi.
Get-WmiObject -Class Win32_LogicalDisk
Ja vēlaties iegūt informāciju no cita tīkla datorā, varat vienkārši izmantot parametru ComputerName.
Get-WmiObject-Klases Win32_LogicalDisk -DatoruName Viper -Vērtības viperis \ t
Izmantojot CIM
Paturot prātā, ka CIM ir pieejams tikai operētājsistēmā Windows 8 un Server 2012, virzoties uz priekšu, tas noteikti ir ceļš.
Get-CimInstance -ClassName Win32_LogicalDisk
Lietojot Get-CimInstance, ir arī parametra -ClassName tabulas aizpildīšana, kas liecina, ka šī darbība ir tāda, ka Microsoft centieni tiks koncentrēti.
Faktiski WMI izstrādāja pilnīgi atsevišķa komanda Microsoft, bet vēlāk to pārņēma cilvēki, kas atbildīgi par PowerShell. Viņi bija tie, kas pamanīja, ka būs ļoti grūti iztīrīt neveiksmi WMI. Mēģinot novērst situāciju, viņi cenšas padarīt WMI un CIM vairāk pieejamus, rakstot iesaiņojuma cmdlet, kas izmanto WMI un CIM zem pārsega. Vienīgais veids, kā pārbaudīt, vai cmdlet ir iesaiņojums, ir apskatīt dokumentāciju. Piemēram, cmdlet Get-Hotfix ir iesaiņojums Win32_QuickFixEngineering klasei, kā redzams dokumentācijā.
Tas nozīmē, ka karstā labojumfailus tālvadības ierīcēs varat iegūt, izmantojot WMI Query vietni, izmantojot Get-HotFix cmdlet.
Get-HotFix -ComputerName localhost
Tātad jums ir tas. Vienkārši atcerieties, ka, ja ir izveidots īpašs cmdlet, jūs vienmēr vēlaties to izmantot, kam seko CIM, ja cmdlet nepastāv. Visbeidzot, ja viss cits neizdodas, vai jums ir vecākas mašīnas jūsu vidē, jūs vēlaties izmantot WMI. Tas ir viss, kas man ir šim laikam. Rīt jūs redzēsiet vairāk PowerShell fun.