Vaadake kindlasti eelmise sarja artikleid:
- Lugege, kuidas automatiseerida Windows PowerShelliga
- Õpime PowerShellis kasutama kommuteid
- PowerShellis Objektide kasutamise õppimine
- PowerShellis õppimise vormindamine, filtreerimine ja võrdlemine
- Õpi Remotingi kasutamist PowerShellis
- PowerShelli kasutamine arvutiteabe hankimiseks
Ja jääge häälestatuks ülejäänud sarja kogu nädala jooksul.
Partii koodide kasutamine
Varasemas seerias, kui tutvustasime teid torujuhtmele, näitasime teile, kuidas saate võtta üksikuid cmdlet väljundeid ja edastada need mõne teise cmdleti sisendina, kasutades selleks midagi sellist:
Get-Process -Name notepad | Stop-Process
See tapaks kõik protsessid nimega notepad. Kuid tõenäoliselt te ei tea, kuidas PowerShell suudab ükskõik missuguse märkmikuga kaasas kanda. Vastus jääb Stop-Processi käskluse abile.
help Stop-Process –Full
Kui vaatate süntaksi jaos olevat koodi viimast rida, näete, et parameeter InputObject nõustub tüübiga Process ja kui näete tüüpi, millele järgneb kaks sellist nurksulti, siis tähendab see, et parameeter nõustub üks või mitu eelmise tüübi kohta. Sellisel juhul aktsepteerib ta ühte või mitut protsessi objekti. Tehniliselt öeldes, et InputObject'i cmdlet võtab protsessi vastu massiiv. Kui teil on sellisel viisil partitsioone toetav cmdlet, kasutage seda. See on valik number üks.
WMI kasutamine
Kuigi WMI ei ole Microsofti peakorterist laevaliiklusest parim tehnoloogia, on see teisel kohal objektide kollektsioonidega töötamise loendist. Klassi Win32_Process võib hõlpsasti saada tööprotsesside loendist nii:
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
Loendamine
Kui kaht ülejäänud meetodit ei õnnestu, kui sa pead midagi tegema paljudele objektidele, võite loetleda kogu objekti ja tegutseda iga üksiku objekti puhul. Esiteks peate leidma meetodi, mille abil saate ühe protsessi peatada.
Get-Process | Get-Member -MemberType Method
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
Kokkuvõte
Valik üks
Get-Process -Name notepad | Stop-Process
Valik kaks
Get-WmiObject -Class Win32_Process -Filter “name=’notepad.exe'” | Invoke-WmiMethod -Name Terminate
Kolm valikut
Get-Process -Name notepad | ForEach-Object -Process {$_.Kill()}
See on kõik selleks ajaks inimestele, näeme järgmisel nädalal rohkem PowerShelli lõbu.