Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
50
WindowsPowerShellprzewodnikposkryptach
serwerów.Przykładowo,jakączynnośćwykonujezwykleadministratorpouruchomieniu
naserwerzeprogramuTaskManager(Menedżerzadań)?Janajczęściejsortujęlistęproce-
sówwedługilościzajmowanejprzezniepamięci.Zadanietowykonujepokazanyponiżej
skryptGetTopMemory.ps1.
GetTopMemory.ps1
Get-Process|
Sort-Objectworkingset-Descending|
Select-Object-First5
SkryptGetTopMemory.ps1możebyćprzydatny
,ponieważoszczędzaczaszwiązanyzsor-
towaniemlistyprocesów.Alejakiebędzienastępnedziałanieadministratora?Czypowinien
onzabićwszystkieprocesyzajmującenajwięcejpamięci?Jeślitak,toniematumiejsca
napodejmowanieżadnychdecyzji.Przypuśćmyjednak,żeadministratorpowinienzabić
tylkoteprocesydziałającewtrybieużytkownika,którezajmująwięcejniż100MBpamięci.
Takiepodejściemożebyćlepszeibardziejkonstruktywne.Wymagaonojednakmożliwości
podejmowaniadecyzji.Zapoznajmysięzatemnajpierwzestrukturąklasycznejinstrukcji
decyzyjnejifelseifelse.
UżywanieinstrukcjiIfElseifElse
Najbardziejpodstawowąinstrukcjądecyzyjnąjestinstrukcjaifelseifelse.Strukturatej
instrukcjijestłatwadozastosowania,ponieważjestonacałkowicienaturalnaistosowana
wnormalnejkonwersacji.Rozważmynp.następującąkonwersację,dwójkiamerykańskich
turystówznajdującychsięakuratwKopenhadze:
If(słonecznieiciepło)
{idźdoNyHavn}
Elseif(pochmurnoizimno)
{idźdoTivoli}
Else
{pojedźkolejkądoMalmo}
Konwersacjatapowinnabyćzrozumiałanawetdlaosóbniewładającychjęzykiemduńskim.
Jeślibędziesłonecznieiciepło,turyściudadząsięnanabrzeżeNyHawn.Pierwszymspraw-
dzanymwarunkiemjestwtymprzypadkuto,czybędziesłonecznieiciepło.Warunkizawsze
umieszczanewewnątrzzwykłychnawiasów.Blokskryptu,któryzostaniewykonany
,jeśli
warunekjestprawdziwy
,umieszczonyjestwewnątrznawiasówklamrowych.Wpodanym
przykładzie,jeślipogodabędziesłonecznaiciepła,turyściudadząsięnanabrzeżeNyHavn
(bardzourokliwyportzmnóstwemkawiareneknawolnympowietrzu).Jeślijednakbędzie
pochmurnoizimno,turyściudadząsiędoTivoli(położonegowcentrumKopenhagi,
parkurozrywki).Jeśliżadenztychwarunkówniebędzieprawdziwy
,np.jeślibędziepadać
deszczlubśnieg,turyściudadząsiępociągiemdoMalmo(szwedzkiegomiastasłynącego
zudanychzakupów).
UruchamiającskryptGetServiceStatus.ps1otrzymamynajpierwlistęwszystkichzain-
stalowanychnakomputerzeusług.Listatatworzonajestprzypomocypoleceniacmdlet
Get-Service.Dysponującjużlistąwszystkichusług,listatazostanieposortowanawedług
statusuusługprzypomocypoleceniaSort-Object.Następniedoprzetworzeniapokolei
całejkolekcjiusługzostajeużytainstrukcjaforeach.Podczaswykonywaniaiteracjipętlidla