Olvassa el a sorozatban szereplő cikkeket:
- További információ a Windows PowerShell automatizálásáról
- A PowerShell-ben található cmdletek használatának elsajátítása
- A PowerShell objektumainak használata
- Tanulási formázás, szűrés és összehasonlítás a PowerShell-ben
- Tanulja meg a Remoting használatát a PowerShell programban
- A PowerShell használata a számítógépes információk beszerzéséhez
És egész héten maradjon a sorozatban.
Batch Cmdlets használata
Korábban a sorozatban, mikor bemutattuk a csővezetékbe, megmutattuk, hogyan tudod elvenni az olyan objektumokat, amelyeket egy cmdlet kimenetként ad ki, és bemenetet ad egy másik cmdlethez valami hasonló módon:
Get-Process -Name notepad | Stop-Process
Ez a "jegyzettömb" nevét elpusztítja. De valószínűleg arra gondolsz, hogy a PowerShell képes egyetlen példányban megölni a jegyzettömb minden egyes példányát. A válasz a Stop-Process cmdlet segítségével történik.
help Stop-Process –Full
Ha a szintaxis szakaszban a kód utolsó sorát nézed meg, láthatjuk, hogy az InputObject paraméter elfogadja a [Process] típusú objektumot, és amikor megjelenik egy olyan típus, amelyet két szögletes zárójel követ, akkor azt jelenti, hogy a paraméter elfogadja egy vagy több az előző típusnál. Ebben az esetben egy vagy több folyamatobjektumot fogad el. Technikailag azt mondhatjuk, hogy az InputObject cmdlet elfogad egy folyamatot sor. Ha van olyan cmdlet, amely támogatja a kötegelt műveleteket ilyen módon, használja. Ez az első számú választás.
A WMI használata
Bár a WMI nem a legjobb technikai megoldás a Microsoft HQ-ból való szállításhoz, a második helyen áll a tárgyak gyűjteményével foglalkozó listán. A Win32_Process osztályból könnyen nyithatnánk a futó folyamatok listáját, így például:
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
Felsorolás
Ha nem tesz eleget a másik két módszernek, ha valamit meg kell tennie egy csomó objektumra, akkor felsorolhatja az egész objektumot, és minden egyes objektumon felléphet. Először meg kell találnia azt a módszert, amelyet egyetlen folyamat leállításához használni fog.
Get-Process | Get-Member -MemberType Method
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
összefoglalás
Választás egy
Get-Process -Name notepad | Stop-Process
Választás két
Get-WmiObject -Class Win32_Process -Filter “name=’notepad.exe'” | Invoke-WmiMethod -Name Terminate
Három választás
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
Ez az egész ebben az időben emberek, látni a jövő héten több PowerShell szórakozást.