27Aug

Geek skola: izmantojot PowerShell, lai saņemtu informāciju par datoru

WMI un tā jaunākais brālis CIM var tikt izmantoti, lai pārvaldītu Windows iekārtas jūsu vidē.Bet vai jūs zināt atšķirību starp tām? Pievienojies mums, kad mēs skatāmies.

Pārliecinieties, ka esat izlasījis iepriekšējos sērijas rakstus:

  • Uzziniet, kā automatizēt Windows ar PowerShell
  • Mācīties lietot komandas PowerShell
  • Mācīšanās lietot objektus PowerShell
  • Mācīšanās formēšana, filtrēšana un salīdzināšana PowerShell
  • Uzziniet, kā izmantot atstarpiPowerShell

Visu nedēļu palieciet uz visu pārējo sēriju.

Ievads

WMI apzīmē Windows vadības instrumentus. Vārds "Instrumentation" attiecas uz to, ka WMI ļauj iegūt informāciju par sava datora iekšējo stāvokli, tāpat kā automašīnas vadības paneļa instrumenti var izgūt un parādīt informāciju par jūsu automašīnu iekšējo komponentu stāvokli.

WMI sastāv no krātuves, kurā ir klases, kas pārstāv sastāvdaļas, kuras var pārvaldīt jūsu datorā.Ar to mēs domājam tikai tādēļ, ka WMI ir Win32_Battery klases, nenozīmē, ka jūsu mašīna satur akumulatoru. Pēc tam šīs klases var tikt vaicātas informācijai lokāli vai pat tīklā, izmantojot vaicājumu valodu, kas ir ļoti līdzīga SQL, ko sauc par WQL.Tomēr ir zināms, ka WMI ir ļoti neuzticams, galvenokārt tāpēc, ka tā pamatā ir RPC( Remote Procedure Calls), kas daži crazy lietas ar ostām viņi izvēlas sazināties.

Sākot ar Windows 8 un Server 2012, WMI tiek pakāpeniski pārtraukta par labu kopīgajam informācijas modelim vai CIM par īsu. Vienīgā atšķirība starp WMI un CIM ir transporta protokoli, kurus tie izmanto. Kamēr WMI veic vaicājumus, izmantojot attālās procedūras izsaukumus, CIM izmanto HTTP, kas, šķiet, padara milzīgas atšķirības. Uz backend viņi joprojām runā ar to pašu informācijas krātuvi.

Izmantojot WMI

Visātrākais un vienkāršākais veids, kā izpētīt ar WMI pieejamo informāciju, ir iegūt jebkuru bezmaksas WMI Object Browser kopiju. Mums tas patīk. Pēc lejupielādes, aktivizējiet to un jums būs grafisks interfeiss, lai pārlūkotu WMI klases.

attēls

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.

attēls

Tūlīt jūs nokļūsiet Win32_LogicalDisk klasē.

attēls

Programmas apakšējā daļā jūs varat redzēt, ka mums ir divi klases gadījumi.

attēls

Kad mums ir mūsu meklējamā klase, PowerShell tiek vaicāts tieši uz priekšu.

Get-WmiObject -Query "SELECT * FROM Win32_LogicalDisk"

attēls

Es šobrīd neredzēju šo sintaksi, jo cilvēki šogad vēlējās izmantot jauno parametrēto sintaksi.

Get-WmiObject-klase Win32_LogicalDisk

attēls

Ja vēlaties iegūt informāciju no cita datora savā tīklā, varat vienkārši izmantot parametru ComputerName.

Get-WmiObject-klase Win32_LogicalDisk -ComputerName Viper-kredīta viper \ administrators

attēls

Izmantojot CIM

Ņemot vērā, ka CIM ir pieejams tikai operētājsistēmā Windows 8 un Server 2012, tas ir noteikti ir veids, kā iet.

Get-CimInstance-ClassName Win32_LogicalDisk

attēls

Ar Get-CimInstance palīdzību tiek izmantots arī tabulēšanas pabeigšanas parametrs -ClassName, kas parāda, ka, turpinot darbu, Microsoft centīsies.

Patiesībā WMI tika izstrādāta pilnīgi atsevišķā Microsoft komandā, bet pēc tam tās 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 netīro WMI palikušo. Mēģinot atrisināt situāciju, viņi mēģina padarīt WMI un CIM pieejamus, rakstot iesaiņojuma cmdletus, kas zem kapuces izmanto WMI un CIM.Vienīgais veids, kā pārbaudīt, vai cmdlet ir iesaiņojums, ir aplūkot dokumentāciju. Piemēram, Get-Hotfix cmdlet ir iesaiņojums klasē Win32_QuickFixEngineering, kā tas redzams dokumentācijā.

attēls

Tas nozīmē, ka jūs varat saņemt labojumfailus uz attālinātām iekārtām, izmantojot WMI vaicājuma vietā, izmantojot Get-HotFix komandu.

Get-HotFix -ComputerName localhost

attēls

Tātad jums tas ir. Vienkārši atcerieties, ka, ja ir īpaša cmdlet, jūs vienmēr gribēsiet to izmantot, kam seko CIM, ja cmdlet nepastāv. Visbeidzot, ja visi citi neizdodas vai jums ir vecākas mašīnas jūsu vidē, jūs vēlēsities izmantot WMI.Tas viss man ir šajā laikā.Redzēsim tev vēl PowerShell jautrību.