Noteikti izlasiet iepriekšējos sērijas rakstus:
- Uzziniet, kā automatizēt Windows ar PowerShell
- Mācīšanās lietot moduļus PowerShell
- Mācīšanās kā lietot objektus PowerShell
- Mācību formēšana, filtrēšana un salīdzināšana PowerShell
- Uzziniet, kā izmantot utilizācijas PowerShell
- Izmantojot PowerShell, lai iegūtu informāciju par datoru
Un visu nedēļu pieskarieties atlikušajām sērijām.
Izmantojot partijas komandas
Agrāk šajā sērijā, kad mēs iepazīstināja jūs ar cauruļvadu, mēs parādījām, kā jūs varat uzņemt objektus, kas ir viens cmdlet rezultāts, un nodot to kā ieeju citai cmdletei, izmantojot šādu:
Get-Process -Name notepad | Stop-Process
Tas nogalinātu jebkuru procesu ar nosaukumu "notepad". Bet jūs, iespējams, vēlaties uzzināt, kā PowerShell spēj nogalināt katru notepad gadījumus ar vienu komandu. Atbilde ir Stop-Process cmdlet palīdzībā.
help Stop-Process –Full
Ja skatāties uz pēdējo koda rindiņu sintakses sadaļā, jūs varat redzēt, ka parametrs InputObject piekrīt objektam Type Process un katru reizi, kad redzat veidu, kam seko divas kvadrātiekavas, piemēram, tas nozīmē, ka parametrs akceptē viens vai vairāki no iepriekšējā tipa. Šajā gadījumā tas pieņem vienu vai vairākus procesa objektus. Tehniski, mēs teiktu, ka InputObject cmdlet pieņem procesu masīvs. Katru reizi, kad jums ir cmdlet, kas šādā veidā atbalsta partijas darbības, izmantojiet to. Tas ir izvēles numurs viens.
WMI izmantošana
Lai gan WMI nav labākā tehnoloģija, kuru piegādā no Microsoft centrālā biroja, tā otrajā vietā ir saraksts ar to, kā strādāt ar objektu kolekcijām. Mēs varējām viegli nokļūt no Win32_Process klases darbības procesa sarakstā, piemēram:
Get-WmiObject –Class Win32_Process
Get-WmiObject –Class Win32_Process | Get-Member
Get-WmiObject -Class Win32_Process -Filter “name=’notepad.exe'” | Invoke-WmiMethod -Name Terminate
Uzskaitījums
Ja neizdodas veikt pārējās divas metodes, ja jums ir jādara kaut kas ar vairākiem objektiem, varat uzskaitīt visu objektu un darboties katram atsevišķam objektam. Vispirms jāatrod metode, kuru izmantosit, lai pārtrauktu vienu procesu.
Get-Process | Get-Member -MemberType Method
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
Kopsavilkums
Izvēles viens
Get-Process -Name notepad | Stop-Process
Divas izvēles
Get-WmiObject -Class Win32_Process -Filter “name=’notepad.exe'” | Invoke-WmiMethod -Name Terminate
Trešā izvēle
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
Tas viss ir šai laikam ļaudīm, redzēsim nākamajā nedēļā vairāk PowerShell jautrības.