Muista lukea sarjan aiemmat artikkelit:
- Opi käyttämään automaattista Windowsia PowerShellillä
- Learning käyttämään Cmdlets PowerShellissä
- Oppiminen esineiden käyttämisessä PowerShellissä
- Oppimisen muotoilu, suodatus ja vertailu PowerShellissä
- Opi käyttämään etäisyyttä PowerShellissä
- PowerShellin käyttäminen tietokoneen tietojen saantiin
Ja pysy kuulolla koko sarjan koko viikon ajan.
Eräiden Cmdlettien käyttäminen
Aikaisemmin sarjassa, kun esittelemme sinut putkijonoon, näytimme, kuinka voit ottaa esineitä, jotka yksi cmdlet tulostaa ja siirtää ne syötteeksi toiseen cmdlettiin käyttäen jotain tällaista:
Get-Process -Name notepad | Stop-Process
Tämä hävisi minkä tahansa prosessin nimeltä "notepad". Mutta olet luultavasti miettimässä, miten PowerShell pystyy taputtamaan jokaisen notepad-esiintymän yhdellä komennolla. Vastaus on Stop-Process-cmdletin avulla.
help Stop-Process –Full
Jos tarkastelet koodin viimeistä rivin syntaksio-osassa, näet, että InputObject-parametri hyväksyy tyypillisen prosessin prosessin, ja aina, kun näet tyypin, jota seuraa kaksi hakasulkeita, se tarkoittaa, että parametri hyväksyy yksi tai useampi edellisestä tyypistä. Tässä tapauksessa se hyväksyy yhden tai useamman prosessiesineen. Teknisesti sanomme, että InputObject-cmdlet hyväksyy prosessin ryhmä. Aina, kun sinulla on cm-osa, joka tukee erätoimintoja tällä tavalla, käytä sitä. Tämä on valinnan numero yksi.
WMI: n käyttäminen
Vaikka WMI ei ole paras tekniikka, joka toimitetaan Microsoftin pääkonttorista, se tulee toiseksi luettelossa siitä, miten käsitellä esineiden kokoelmia. Voimme helposti saada luettelon käynnissä olevista prosesseista Win32_Process-luokasta kuten:
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
luettelointi
Kahden muun menetelmän puuttuminen, jos joudut tekemään jotain joukolle objekteja, voit luetella koko objektin ja toimia kunkin yksittäisen objektin suhteen. Ensin sinun on löydettävä menetelmä, jonka avulla lopetat yhden prosessin.
Get-Process | Get-Member -MemberType Method
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
Yhteenveto
Choice One
Get-Process -Name notepad | Stop-Process
Vaihtoehto kaksi
Get-WmiObject -Class Win32_Process -Filter “name=’notepad.exe'” | Invoke-WmiMethod -Name Terminate
Valintana kolme
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
Kaikki tämä tänä aikana ihmiset, näet ensi viikolla enemmän PowerShell-hauskaa.