Tytuł oryginału: Learn Windows PowerShell in a Month of Lunches, 3rd Edition
Tłumaczenie: Grzegorz Kowalczyk
ISBN: 978-83-283-4648-2
Original edition copyright © 2017 by Manning Publications Co.
All rights reserved.
Polish edition copyright © 2018 by HELION SA.
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz HELION SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą
również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych
w książce.
HELION SA
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/wipom3.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/wipom3
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
Spis treĂci
Przedmowa
13
PodziÚkowania
15
O ksiÈĝce
17
O autorach
19
Rozdziaï 1. Zanim zaczniesz
21
1.1. Dlaczego nie moĝesz sobie pozwoliÊ na ignorowanie powïoki PowerShell
22
1.1.1. ¿ycie bez powïoki PowerShell
22
1.1.2. ¿ycie z powïokÈ PowerShell
23
1.2. Od teraz juĝ tylko PowerShell!
24
1.3. Czy
ta
ksiÈĝka jest dla Ciebie?
24
1.4. Jak
korzystaÊ z tej ksiÈĝki
25
1.4.1. Gïówne rozdziaïy
25
1.4.2. mwiczenia praktyczne
26
1.4.3. Przykïadowe kody
26
1.4.4. Materiaïy uzupeïniajÈce
26
1.4.5. Dalsze
pogïÚbianie swojej wiedzy
26
1.4.6. Dla
zainteresowanych
27
1.5. Konfigurowanie Ărodowiska testowego
27
1.6. Instalowanie Windows PowerShell
28
1.7. Kontakt z nami
30
1.8. Natychmiastowe dziaïanie z powïokÈ PowerShell
30
Rozdziaï 2. Poznaj powïokÚ PowerShell
31
2.1. Wybierz
swojÈ broñ
31
2.1.1. Okno
konsoli
33
2.1.2. Zintegrowane
Ărodowisko skryptowe
35
4
Spis treĂci
2.2. Wracamy do wpisywania poleceñ z klawiatury
38
2.3. NajczÚĂciej spotykane problemy
39
2.4. Jaka to wersja?
40
2.5. mwiczenia
41
Rozdziaï 3. Korzystanie z systemu pomocy
43
3.1.
System pomocy — jak poznawaÊ polecenia powïoki PowerShell?
43
3.2. Aktualizowanie systemu pomocy
45
3.3. Korzystanie z systemu pomocy
47
3.4. Zastosowanie systemu pomocy do wyszukiwania poleceñ
48
3.5. Interpretacja
treĂci plików pomocy
51
3.5.1. Zestawy parametrów i parametry wspólne
51
3.5.2. Parametry obligatoryjne i opcjonalne
52
3.5.3. Parametry
pozycyjne
53
3.5.4. WartoĂci parametrów
55
3.5.5. Wyszukiwanie
przykïadów poleceñ
58
3.6. DostÚp do ogólnych tematów pomocy
59
3.7. DostÚp do pomocy online
60
3.8. mwiczenia
60
3.9. Odpowiedzi
62
Rozdziaï 4. Uruchamianie poleceñ
65
4.1. Nie tworzymy skryptów, ale uruchamiamy polecenia
65
4.2. Anatomia
polecenia
67
4.3. Konwencja tworzenia nazw poleceñ cmdlet
68
4.4. Aliasy — skrócone nazwy poleceñ
69
4.5. Tworzenie
skrótów
71
4.5.1. Uĝywanie skróconych nazw parametrów
71
4.5.2. Uĝywanie aliasów nazw parametrów
71
4.5.3. Uĝywanie parametrów pozycyjnych
72
4.6. TrochÚ oszukiwania — polecenie Show-Command
73
4.7. Obsïuga poleceñ zewnÚtrznych
75
4.8. Jak
radziÊ sobie z bïÚdami
78
4.9. NajczÚĂciej spotykane problemy
79
4.9.1. Wpisywanie nazw poleceñ cmdlet
79
4.9.2. Wpisywanie
parametrów
80
4.10. mwiczenia
80
Rozdziaï 5. Praca z dostawcami
83
5.1. Czym
sÈ dostawcy?
83
5.2. Jak zorganizowany jest system plików
85
5.3. W czym system plików jest podobny do innych magazynów danych?
87
5.4. Poruszanie
siÚ w systemie plików
88
5.5. Uĝywanie symboli wieloznacznych i dokïadnych Ăcieĝek
90
Spis treĂci
5
5.6. Praca z innymi dostawcami
91
5.7. mwiczenia
94
5.8. Co
dalej?
94
5.9. Odpowiedzi
95
Rozdziaï 6. Potoki — ïÈczenie poleceñ
97
6.1. Èczenie poleceñ ze sobÈ — mniej pracy dla Ciebie
97
6.2. Eksportowanie wyników dziaïania polecenia do pliku CSV lub XML
98
6.2.1. Eksportowanie wyników dziaïania do pliku CSV
99
6.2.2. Eksportowanie wyników dziaïania do pliku XML
100
6.2.3. Porównywanie
plików
101
6.3. Przesyïanie wyników dziaïania polecenia do pliku lub na drukarkÚ
104
6.4. Konwersja na pliki w formacie HTML
105
6.5. Uĝywanie poleceñ cmdlet do modyfikowania systemu
— zakoñczenie dziaïania procesów i zatrzymywanie usïug
106
6.6. NajczÚĂciej spotykane problemy
108
6.7. mwiczenia
110
6.8. Odpowiedzi
111
Rozdziaï 7. Dodawanie poleceñ
113
7.1. Jak jedna powïoka moĝe zrobiÊ wszystko
113
7.2. Powïoki przeznaczone do zarzÈdzania danym produktem
114
7.3. Rozszerzenia — wyszukiwanie i dodawanie przystawek
115
7.4. Rozszerzenia — wyszukiwanie i dodawanie moduïów
117
7.5. Konflikty
poleceñ i usuwanie rozszerzeñ
120
7.6. Jak
to
wyglÈda w systemach operacyjnych innych niĝ Windows
121
7.7. Uĝywanie nowego moduïu
121
7.8. Skrypty profilów powïoki PowerShell — wstÚpne ïadowanie rozszerzeñ
podczas uruchamiania powïoki
123
7.9. Pobieranie
moduïów z Internetu
125
7.10. NajczÚĂciej spotykane problemy
126
7.11. mwiczenia
126
7.12. Odpowiedzi
127
Rozdziaï 8. Obiekty — dane pod innÈ nazwÈ
129
8.1. Czym
sÈ obiekty?
129
8.2. Dlaczego
powïoka PowerShell uĝywa obiektów?
131
8.3. Odkrywanie obiektów — polecenie Get-Member
133
8.4. Uĝywanie atrybutów i wïaĂciwoĂci obiektów
134
8.5. Uĝywanie akcji i metod obiektu
135
8.6. Sortowanie
obiektów
136
8.7. Wybieranie
ĝÈdanych wïaĂciwoĂci
137
8.8. Obiekty
aĝ do koñca
138
6
Spis treĂci
8.9. NajczÚĂciej spotykane problemy
141
8.10. mwiczenia
141
8.11. Odpowiedzi
142
Rozdziaï 9. Potoki — zaglÈdamy nieco gïÚbiej
143
9.1. Potoki — wiÚksze moĝliwoĂci przy mniejszej liczbie poleceñ
143
9.2. Jak
powïoka PowerShell przekazuje dane za pomocÈ potoku
144
9.3. Plan A — przekazywanie danych ByValue
145
9.4. Plan B — przekazywanie danych ByPropertyName
148
9.5. Gdy dane do siebie nie pasujÈ — wïaĂciwoĂci niestandardowe
153
9.6. Polecenia
w
nawiasach
156
9.7. WyodrÚbnianie wartoĂci z jednej wïaĂciwoĂci
157
9.8. mwiczenia
163
9.9. Co
dalej?
164
9.10. Odpowiedzi
165
Rozdziaï 10. Formatowanie wyników dziaïania
167
10.1. Formatowanie — upiÚkszanie tego, co widzisz
167
10.2. Praca z formatowaniem domyĂlnym
168
10.3. Formatowanie tabel
171
10.4. Formatowanie list
173
10.5. Formatowanie szerokich list
174
10.6. Tworzenie niestandardowych kolumn i elementów list
175
10.7. Przesyïanie danych na wyjĂcie: do pliku, drukarki lub na ekran
178
10.8. Jeszcze jeden typ wyjĂcia: GridViews
178
10.9. NajczÚĂciej spotykane problemy
178
10.9.1. Formatuj dane na koñcu
179
10.9.2. Jeden typ obiektu jednoczeĂnie
181
10.10. mwiczenia
182
10.11. Co dalej?
183
10.12. Odpowiedzi
183
Rozdziaï 11. Filtrowanie i porównywanie danych
185
11.1. Jak sprawiÊ, aby powïoka daïa Ci to, czego potrzebujesz
185
11.2. Filtrowanie z lewej
186
11.3. Korzystanie z operatorów porównania
187
11.4. Filtrowanie obiektów poza potokiem
189
11.5. Uĝywanie iteracyjnego modelu wiersza poleceñ
190
11.6. NajczÚĂciej spotykane problemy
192
11.6.1. Filtr z lewej, proszÚ
193
11.6.2. Kiedy uĝywanie symbolu $_ jest dozwolone?
193
11.7. mwiczenia
194
11.8. Co dalej?
195
11.9. Odpowiedzi
195
Spis treĂci
7
Rozdziaï 12. TrochÚ praktyki
197
12.1. Definiowanie zadania
197
12.2. Wyszukiwanie odpowiednich poleceñ
198
12.3. Uczymy siÚ, jak korzystaÊ z nowych poleceñ
199
12.4. Wskazówki dotyczÈce samodzielnej nauki
201
12.5. mwiczenia
201
12.6. Odpowiedzi
202
Rozdziaï 13. Komunikacja zdalna — jeden-do-jednego i jeden-do-wielu
203
13.1. Koncepcja komunikacji zdalnej w powïoce PowerShell
204
13.2. Usïuga WinRM
206
13.3. Uĝywanie poleceñ Enter-PSSession i Exit-PSSession
do poïÈczeñ zdalnych typu jeden-do-jednego
210
13.4. Zastosowanie polecenia Invoke-Command do komunikacji zdalnej
typu jeden-do-wielu
213
13.5. Róĝnice miÚdzy poleceniami zdalnymi i lokalnymi
216
13.5.1. Polecenie Invoke-Command kontra parametr -computerName
216
13.5.2. Przetwarzanie lokalne kontra zdalne
217
13.5.3. Obiekty po deserializacji
219
13.6. Ale poczekaj, jest jeszcze coĂ wiÚcej
220
13.7. Opcje komunikacji zdalnej
221
13.8. NajczÚĂciej spotykane problemy
222
13.9. mwiczenia
223
13.10. Co dalej?
224
13.11. Odpowiedzi
224
Rozdziaï 14. Zastosowanie mechanizmu WMI oraz standardu CIM
225
14.1. Podstawowe elementy WMI
226
14.2. Zïe wieĂci na temat usïugi WMI
228
14.3. Eksplorowanie WMI
230
14.4. Wybierz swojÈ broñ: WMI lub CIM
232
14.5. Uĝywanie polecenia Get-WmiObject
233
14.6. Uĝywanie polecenia Get-CimInstance
237
14.7. Dokumentacja WMI
237
14.8. NajczÚĂciej spotykane problemy
237
14.9. mwiczenia
238
14.10. Co dalej?
239
14.11. Odpowiedzi
239
Rozdziaï 15. WielozadaniowoĂÊ z zadaniami dziaïajÈcymi w tle
241
15.1. Uruchamianie wielu zadañ powïoki PowerShell w tym samym czasie
241
15.2. Zadania synchroniczne i asynchroniczne
242
15.3. Tworzenie zadañ lokalnych
243
8
Spis treĂci
15.4. Zapytania WMI jako zadania dziaïajÈce w tle
244
15.5. Komunikacja zdalna jako zadanie dziaïajÈce w tle
245
15.6. Pobieranie wyników dziaïania zadania uruchomionego w tle
246
15.7. Praca z zadaniami podrzÚdnymi
249
15.8. Polecenia do zarzÈdzania zadaniami
251
15.9. Zaplanowane zadania
253
15.10. NajczÚĂciej spotykane problemy
254
15.11. mwiczenia
256
15.12. Odpowiedzi
256
Rozdziaï 16. Praca z wieloma obiektami jednoczeĂnie
259
16.1. Automatyzacja zarzÈdzania wieloma obiektami docelowymi
259
16.2. Preferowany sposób: polecenia „wsadowe”
260
16.3. Wykorzystanie mechanizmów CIM/WMI — wywoïywanie metod
262
16.4. Plan B — wyliczanie obiektów
266
16.5. NajczÚĂciej spotykane problemy
271
16.5.1. Który sposób postÚpowania jest wïaĂciwy?
271
16.5.2. Metody WMI a polecenia powïoki
273
16.5.3. Dokumentacja metod
273
16.5.4. NajczÚstsze problemy z poleceniem ForEach-Object
274
16.6. mwiczenia
275
16.7. Odpowiedzi
275
Rozdziaï 17. Bezpieczeñstwo wykonywania skryptów
277
17.1. Zapewnienie bezpieczeñstwa powïoki PowerShell
277
17.2. Model bezpieczeñstwa powïoki Windows PowerShell
278
17.3. Polityka wykonywania skryptów i podpisywanie kodu
280
17.3.1. Ustawienia polityki wykonywania skryptów
280
17.3.2. Cyfrowe podpisywanie kodu
283
17.4. Inne mechanizmy bezpieczeñstwa
287
17.5. Inne luki w zabezpieczeniach?
287
17.6. Zalecenia bezpieczeñstwa
288
17.7. mwiczenia
289
Rozdziaï 18. Zmienne — miejsca do przechowywania danych
291
18.1. Wprowadzenie do zmiennych
291
18.2. Przechowywanie wartoĂci w zmiennych
292
18.3. Uĝywanie zmiennych: zabawne sztuczki z apostrofami i cudzysïowami
294
18.4. Przechowywanie wielu obiektów w zmiennej
297
18.4.1. Praca z pojedynczymi obiektami w zmiennej
297
18.4.2. Praca z wieloma obiektami w zmiennej
298
18.4.3. Inne sposoby pracy z wieloma obiektami
299
18.4.4. Rozwijanie wïaĂciwoĂci i metod obiektów w powïoce PowerShell v3
300
18.5. WiÚcej trików z cudzysïowami
301
Spis treĂci
9
18.6. Deklarowanie typu zmiennej
303
18.7. Polecenia do pracy ze zmiennymi
305
18.8. Dobre praktyki w pracy ze zmiennymi
306
18.9. NajczÚĂciej spotykane problemy
306
18.10. mwiczenia
307
18.11. Co dalej?
307
18.12. Odpowiedzi
307
Rozdziaï 19. WejĂcie i wyjĂcie
309
19.1. Pobieranie i wyĂwietlanie informacji
309
19.2. Polecenie Read-Host
310
19.3. Polecenie Write-Host
313
19.4. Polecenie Write-Output
315
19.5. Inne sposoby wyĂwietlania danych
317
19.6. mwiczenia
318
19.7. Co dalej?
319
19.8. Odpowiedzi
319
Rozdziaï 20. Sesje — uïatwienie komunikacji zdalnej
321
20.1. Uïatwienie komunikacji zdalnej z uĝyciem powïoki PowerShell
321
20.2. Tworzenie sesji wielokrotnego uĝytku i praca z nimi
322
20.3. Uĝywanie sesji z poleceniem Enter-PSSession
323
20.4. Uĝywanie sesji z poleceniem Invoke-Command
325
20.5. Niejawna komunikacja zdalna — importowanie sesji
327
20.6. Korzystanie z rozïÈczonych sesji
328
20.7. mwiczenia
330
20.8. Co dalej?
331
20.9. Odpowiedzi
332
Rozdziaï 21. Nazywasz to pisaniem skryptów?
333
21.1. Nie tworzymy programów, ale raczej pliki wsadowe
333
21.2. Tworzenie poleceñ wielokrotnego uĝytku
334
21.3. Parametryzowanie poleceñ
336
21.4. Tworzenie sparametryzowanego skryptu
337
21.5. Dokumentowanie skryptu
339
21.6. Jeden skrypt, jeden potok
340
21.7. Szybkie spojrzenie na zasiÚg
344
21.8. mwiczenia
346
21.9. Odpowiedzi
346
Rozdziaï 22. Ulepszanie sparametryzowanego skryptu
349
22.1. Skrypt bazowy
349
22.2. Zmuszamy powïokÚ PowerShell do ciÚĝkiej pracy
350
10
Spis treĂci
22.3. Definiowanie parametrów obligatoryjnych
351
22.4. Dodawanie aliasów parametrów
354
22.5. Sprawdzanie poprawnoĂci wartoĂci parametru
355
22.6. WyĂwietlanie szczegóïowych wyników dziaïania
356
22.7. mwiczenia
358
22.8. Odpowiedzi
358
Rozdziaï 23. Zaawansowana konfiguracja komunikacji zdalnej
361
23.1. Korzystanie z innych punktów koñcowych
361
23.2. Tworzenie niestandardowych punktów koñcowych
362
23.2.1. Tworzenie konfiguracji sesji
363
23.2.2. Rejestrowanie sesji
364
23.3. WïÈczanie mechanizmu komunikacji zdalnej
za poĂrednictwem hostów poĂrednich
367
23.4. Zaawansowane uwierzytelnianie na komputerach zdalnych
368
23.4.1. Ustawienia domyĂlne wzajemnego uwierzytelniania
368
23.4.2. Wzajemne uwierzytelnianie przez SSL
369
23.4.3. Wzajemne uwierzytelnianie za poĂrednictwem TrustedHosts
369
23.5. mwiczenia
370
23.6. Odpowiedzi
371
Rozdziaï 24. Zastosowanie wyraĝeñ regularnych
do parsowania plików tekstowych
373
24.1. Przeznaczenie wyraĝeñ regularnych
374
24.2. Podstawy skïadni wyraĝeñ regularnych
374
24.3. Uĝywanie wyraĝeñ regularnych z operatorem -Match
376
24.4. Uĝywanie wyraĝeñ regularnych z poleceniem Select-String
377
24.5. mwiczenia
379
24.6. Co dalej?
380
24.7. Odpowiedzi
381
Rozdziaï 25. Róĝne wskazówki, techniki, sztuczki i chwyty
383
25.1. Profile, podpowiedzi i kolory — dostosowywanie powïoki
383
25.1.1. Profile powïoki PowerShell
383
25.1.2. Dostosowywanie znaku zachÚty powïoki
386
25.1.3. Modyfikowanie ustawieñ kolorów
386
25.2. Operatory: -as, -is, -replace, -join, -split, -in, -contains
388
25.2.1. Operatory -as i -is
388
25.2.2. Operator -replace
389
25.2.3. Operatory -join i -split
389
25.2.4. Operatory -contains i -in
390
25.3. Operowanie na ciÈgach znaków
391
25.4. Operowanie na datach
392
25.5. Operowanie na datach WMI
394
Spis treĂci
11
25.6. Ustawianie domyĂlnych wartoĂci parametrów
395
25.7. Zastosowanie bloków skryptu
396
25.8. WiÚcej wskazówek, trików i technik
397
Rozdziaï 26. Korzystanie ze skryptów innych uĝytkowników
399
26.1. Skrypt
400
26.2. Analiza wiersz po wierszu
404
26.3. mwiczenia
405
26.4. Odpowiedzi
407
Rozdziaï 27. To jeszcze nie koniec
409
27.1. Pomysïy na dalszÈ eksploracjÚ powïoki PowerShell
409
27.2. „Od czego mam zaczÈÊ, kiedy przeczytaïem juĝ tÚ ksiÈĝkÚ?”
410
27.3. Inne zasoby, o których warto pamiÚtaÊ
411
Rozdziaï 28. PowerShell — podrÚczna ĂciÈgawka
413
28.1. Interpunkcja
413
28.2. Pliki pomocy
417
28.3. Operatory
417
28.4. Niestandardowe wïaĂciwoĂci i kolumny
418
28.5. Pobieranie parametrów z potoku
419
28.6. Kiedy uĝywaÊ symbolu zastÚpczego $_
420
Dodatek A. mwiczenia podsumowujÈce
423
Skorowidz
435
Poznaj powïokÚ PowerShell
W tym rozdziale chodzi o to, abyĂ zaprzyjaěniï siÚ z powïokÈ PowerShell i zdecydowaï,
którego interfejsu tej powïoki bÚdziesz uĝywaï (tak, masz wybór!). JeĂli korzystaïeĂ juĝ
z powïoki PowerShell, ten materiaï moĝe wydaÊ Ci siÚ zbÚdny, choÊ mimo to warto
przejrzeÊ ten rozdziaï — moĝesz znaleěÊ tu kilka ciekawostek, które pomogÈ Ci w pra-
cy z powïokÈ.
Niniejszy rozdziaï dotyczy wyïÈcznie powïoki PowerShell w systemie Windows.
Wersje dziaïajÈce na innych platformach niĝ Windows nie majÈ tylu opcji i moĝliwoĂci,
wiÚc jeĝeli jesteĂ w takiej sytuacji, moĝesz spokojnie pominÈÊ ten rozdziaï.
2.1. Wybierz swoją broĔ
W systemie Windows firma Microsoft oferuje dwa sposoby pracy z powïokÈ PowerShell
(a w zasadzie nawet cztery, jeĝeli jesteĂ bardzo wybredny). Na rysunku 2.1 pokazano
stronÚ aplikacji ekranu Start z czterema ikonami powïoki PowerShell (wyróĝniliĂmy je
obramowaniem, tak aby ïatwiej moĝna je byïo dostrzec).
WSKAZÓWKA
W starszych wersjach systemu Windows wspomniane ikony
znajdujÈ siÚ w menu Start. Aby je odnaleěÊ, powinieneĂ wybraÊ polecenie Wszyst-
kie programy/Akcesoria/Windows PowerShell. Zamiast tego moĝesz równieĝ wybraÊ
z menu Start polecenie Uruchom, wpisaÊ
powershell.exe
i nacisnÈÊ klawisz Enter, co
spowoduje uruchomienie konsoli powïoki PowerShell. W systemach Windows 8
i Windows Server 2012 lub nowszych przytrzymaj klawisz Windows na klawiatu-
rze, naciĂnij klawisz R, a na ekranie pojawi siÚ okno dialogowe Uruchom. Aby szyb-
ko dostaÊ siÚ do ikon powïoki PowerShell, naciĂnij i zwolnij klawisz Windows,
a nastÚpnie w polu wyszukiwania zacznij pisaÊ
powershell
.
32
R
OZDZIAà
2.
Poznaj powïokÚ PowerShell
Rysunek 2.1.
PowáokĊ PowerShell moĪesz uruchomiü na jeden z czterech sposobów
W 32-bitowym systemie operacyjnym masz tylko najwyĝej dwie ikony powïoki Po-
werShell; w systemie 64-bitowym znajdziesz ich maksymalnie cztery. SÈ to:
Q
Windows PowerShell — 64-bitowa konsola tekstowa w systemie 64-bitowym;
32-bitowa konsola tekstowa w systemie 32-bitowym;
Q
Windows PowerShell (x86) — 32-bitowa konsola tekstowa w systemie 64-bitowym;
Q
Windows PowerShell ISE — 64-bitowa konsola graficzna w systemie 64-bitowym;
32-bitowa konsola graficzna w systemie 32-bitowym;
Q
Windows PowerShell ISE (x86) — 32-bitowa konsola graficzna w systemie
64-bitowym.
Innymi sïowy, 32-bitowe systemy operacyjne majÈ tylko 32-bitowÈ wersjÚ powïoki Po-
werShell, a systemy 64-bitowe posiadajÈ powïokÚ PowerShell zarówno w wersji 64-bitowej,
jak i 32-bitowej, przy czym 32-bitowe wersje powïoki zawierajÈ w nazwie ikony ciÈg zna-
ków x86. Z 32-bitowej wersji powïoki PowerShell w systemie 64-bitowym powinieneĂ ko-
rzystaÊ tylko wtedy, kiedy uĝywasz takiego rozszerzenia powïoki, dla którego wersja
64-bitowa nie jest dostÚpna. Obecnie firma Microsoft caïkowicie postawiïa na rozwój
wersji 64-bitowej, a wersje 32-bitowe sÈ utrzymywane gïówne ze wzglÚdu na koniecz-
noĂÊ zachowania kompatybilnoĂci wstecznej.
2.1. Wybierz swojÈ broñ
33
WSKAZÓWKA
W systemach 64-bitowych moĝna bardzo ïatwo przypadkowo uru-
chomiÊ niewïaĂciwÈ wersjÚ aplikacji. PowinieneĂ wyrobiÊ w sobie nawyk spoglÈ-
dania na pasek tytuïu okna aplikacji — jeĝeli w nazwie okna znajdziesz ciÈg znaków
x86, oznacza to, ĝe uruchamiasz aplikacjÚ 32-bitowÈ. Rozszerzenia 64-bitowe nie
bÚdÈ dziaïaÊ w 32-bitowej wersji powïoki (a zdecydowana wiÚkszoĂÊ nowych roz-
szerzeñ to wersje 64-bitowe). Dobrym, rekomendowanym przez nas rozwiÈzaniem
jest przypiÚcie skrótu do wybranej wersji powïoki bezpoĂrednio do menu Start.
2.1.1. Okno konsoli
Na rysunku 2.2 przedstawiono okno konsoli, które jest miejscem, gdzie wiÚkszoĂÊ uĝyt-
kowników po raz pierwszy styka siÚ z powïokÈ PowerShell. Nieco przewrotnie roz-
poczniemy tÚ sekcjÚ od przedstawienia kilku argumentów przemawiajÈcych przeciwko
uĝywaniu tekstowej konsoli powïoki PowerShell:
Q
Konsola tekstowa nie obsïuguje zestawów znaków dwubajtowych, a zatem wiele
tekstów napisanych w jÚzykach innych niĝ angielski nie bÚdzie wyĂwietlanych
poprawnie.
Q
Operacje z uĝyciem schowka systemowego (kopiowanie i wklejanie) wykorzy-
stujÈ niestandardowe kombinacje klawiszy, do których trudno siÚ przyzwyczaiÊ.
Q
Konsola tekstowa zapewnia tylko niewielkÈ pomoc przy wpisywaniu poleceñ
z klawiatury (w porównaniu z konsolÈ ISE, którÈ omówimy w dalszej czÚĂci tego
rozdziaïu), chociaĝ w powïoce PowerShell v5 wyglÈda to znacznie lepiej. Warto
równieĝ zauwaĝyÊ, ĝe w systemie Windows 10 firma Microsoft wprowadziïa do
powïoki PowerShell wiele poprawek naprawiajÈcych niektóre z istniejÈcych od
dawna problemów, wiÚc Twoje wraĝenia mogÈ byÊ nieco inne.
Rysunek 2.2.
Standardowe okno tekstowej konsoli powáoki PowerShell — PowerShell.exe
34
R
OZDZIAà
2.
Poznaj powïokÚ PowerShell
Wymienione wyĝej niedogodnoĂci nie zmieniajÈ w niczym faktu, ĝe konsola tekstowa
jest jedynym rozwiÈzaniem, gdy chcesz uruchomiÊ powïokÚ PowerShell na serwerach,
które nie posiadajÈ zainstalowanego graficznego interfejsu uĝytkownika (takich jak
przykïadowo serwery Server Core, Nano Server lub dowolna instancja serwera Windows
Server, w której interfejs GUI zostaï usuniÚty lub nie zostaï zainstalowany). Po stronie
plusów tekstowej konsoli powïoki PowerShell moĝemy wymieniÊ:
Q
Aplikacja konsoli tekstowej ma niewielkie rozmiary, dziÚki czemu szybko siÚ ïa-
duje i nie zuĝywa duĝo pamiÚci.
Q
Nie wymaga ĝadnych innych komponentów z platformy .NET Framework
oprócz tych, których potrzebuje sama powïoka PowerShell.
Q
W razie potrzeby moĝesz zmieniÊ ustawienia kolorów na przykïad na zielony
tekst na czarnym tle i udawaÊ, ĝe pracujesz na komputerze klasy mainframe z lat
70. ubiegïego stulecia.
JeĂli zdecydujesz siÚ na korzystanie z tekstowej konsoli powïoki PowerShell, zapoznaj
siÚ z kilkoma naszymi sugestiami dotyczÈcymi jej konfiguracji. Aby wprowadziÊ opisane
niĝej zmiany w ustawieniach, powinieneĂ kliknÈÊ ikonÚ powïoki znajdujÈcÈ siÚ w le-
wym górnym rogu okna konsoli i z menu podrÚcznego wybraÊ polecenie WïaĂciwoĂci.
Na ekranie pojawi siÚ okno dialogowe przedstawione na rysunku 2.3. W systemie Win-
dows 10 okno to wyglÈda nieco inaczej (znajdziesz tam kilka nowych opcji), ale ogólnie
sposób postÚpowania jest taki sam.
Rysunek 2.3.
Zmiana ustawieĔ konfiguracyjnych okna konsoli
2.1. Wybierz swojÈ broñ
35
Na karcie Opcje moĝesz zwiÚkszyÊ rozmiar bufora historii poleceñ (opcja Historia pole-
ceñ/Rozmiar buforu), który pozwala konsoli zapamiÚtywaÊ wpisane polecenia i umoĝliwia
ich przywoïywanie z poziomu klawiatury za pomocÈ strzaïek w górÚ i w dóï. ListÚ
wczeĂniej wykonanych poleceñ moĝesz takĝe wyĂwietliÊ, naciskajÈc klawisz F7.
Na karcie Czcionka zmieñ rozmiar czcionki na nieco wiÚkszy niĝ domyĂlne 12 pkt.
Prosimy. NaprawdÚ nie obchodzi nas, czy masz sokoli wzrok — po prostu zaufaj nam
i zwiÚksz nieco rozmiar czcionki. PracujÈc z powïokÈ PowerShell, bÚdziesz musiaï czÚ-
sto szybko odróĝniaÊ od siebie wiele podobnych znaków, takich jak
'
(apostrof) czy
`
(od-
wrócony apostrof), a maïa czcionka wcale w tym nie pomaga.
Na karcie Ukïad ustaw obie opcje SzerokoĂÊ na tÚ samÈ wartoĂÊ i upewnij siÚ, ĝe
otrzymane okno mieĂci siÚ na ekranie. Jeĝeli tego nie zrobisz, moĝe siÚ okazaÊ, ĝe
w dolnej czÚĂci okna pojawi siÚ poziomy pasek przewijania, a niektóre, „szerokie” wy-
niki dziaïania poleceñ powïoki bÚdÈ siÚ pojawiaïy poza prawÈ krawÚdziÈ okna i nie bÚ-
dÈ widoczne. W czasie prowadzonych przez nas szkoleñ zdarzaïo siÚ, ĝe nasi studenci
spÚdzali sporo czasu na uporczywych próbach zmuszania do dziaïania jakieĂ pozornie
niedziaïajÈce polecenie, które w rzeczywistoĂci dziaïaïo jak naleĝy, wyĂwietlajÈc wyniki
poza krawÚdziÈ ekranu. To moĝe byÊ irytujÈce.
Na koniec przejdě na kartÚ Kolory i postaraj siÚ zachowaÊ umiar. Pozostaw w miarÚ
wysoki kontrast i zachowaj ïatwoĂÊ czytania. Jeĝeli nie podoba Ci siÚ domyĂlne usta-
wienie kolorów (biaïa czcionka na niebieskim tle), to pamiÚtaj, ĝe na przykïad czarna
czcionka na Ărednioszarym tle teĝ bÚdzie wyglÈdaÊ caïkiem nieěle.
PowinieneĂ pamiÚtaÊ o jeszcze jednej sprawie: aplikacja, którÈ uruchamiasz w kon-
soli tekstowej, to nie jest powïoka PowerShell — to tylko narzÚdzie, za pomocÈ którego
wchodzisz w interakcjÚ z powïokÈ PowerShell. Sama aplikacja konsolowa ma swoje ko-
rzenie w poïowie lat 80. ubiegïego stulecia, a co za tym idzie, jest dosyÊ prymitywna
i nie powinieneĂ oczekiwaÊ, ĝe zrobi na Tobie ogromne wraĝenie.
2.1.2. Zintegrowane Ğrodowisko skryptowe
Na rysunku 2.4 przedstawiono wyglÈd Ărodowiska PowerShell Integrated Scripting
Environment (ISE).
WSKAZÓWKA
Jeĝeli przypadkowo uruchomisz standardowÈ aplikacjÚ konsolo-
wÈ, to moĝesz uruchomiÊ Ărodowisko ISE, wpisujÈc polecenie
ise
i naciskajÈc
klawisz Enter.
Istnieje wiele zagadnieñ zwiÈzanych ze Ărodowiskiem PowerShell ISE, o których warto
wspomnieÊ, ale rozpoczniemy od przedstawienia tabeli 2.1, gdzie zamieszczamy krót-
kie zestawienie jego najwaĝniejszych zalet i wad.
Zacznijmy od podstaw. Na rysunku 2.5 wyróĝniono trzy gïówne obszary okna Ăro-
dowiska ISE i zaznaczono obszar paska narzÚdzi ISE, za pomocÈ którego moĝna kon-
trolowaÊ te obszary.
36
R
OZDZIAà
2.
Poznaj powïokÚ PowerShell
Rysunek 2.4.
ĝrodowisko PowerShell ISE (powershell_ise.exe)
Tabela 2.1.
Zalety i wady Ğrodowiska PowerShell ISE
Zalety
Wady
ĝrodowisko ISE jest znacznie áadniejsze od
aplikacji konsolowej i obsáuguje zestawy
znaków dwubajtowych.
Wymaga obecnoĞci zainstalowanego pakietu
Windows Presentation Foundation (WPF), co oznacza,
Īe nie moĪe dziaáaü na serwerze, na którym
odinstalowano GUI (chociaĪ moĪe dziaáaü w trybie
GUI Minimal Server, który obsáuguje aplikacje WPF).
Wspomaga tworzenie poleceĔ i skryptów
powáoki PowerShell, o czym przekonasz siĊ
w dalszej czĊĞci tego rozdziaáu.
Uruchamianie Ğrodowiska ISE zajmuje nieco wiĊcej
czasu, niĪ to ma miejsce w przypadku aplikacji
konsolowej (aczkolwiek jest to róĪnica zaledwie
kilku sekund).
ĝrodowisko ISE wykorzystuje standardowe
kombinacje klawiszy operacji kopiowania
i wklejania.
Wersje wczeĞniejsze niĪ 5.0 nie obsáugują
mechanizmu transkrypcji.
Na rysunku 2.5 górny obszar to okienko edytora skryptów, którego w tej ksiÈĝce nie
bÚdziemy uĝywaÊ. W prawym górnym rogu tego panelu zauwaĝysz maïÈ niebieskÈ
strzaïkÚ; kliknij jÈ, aby ukryÊ edytor skryptów i zmaksymalizowaÊ panel konsoli, czyli
obszar, z którego bÚdziemy korzystaÊ. Po prawej stronie okna znajduje siÚ panel poleceñ,
który moĝesz pozostawiÊ otwarty lub zamknÈÊ, klikajÈc maïy przycisk X w prawym
górnym rogu. „PïywajÈce” okno poleceñ moĝesz przywoïaÊ, klikajÈc przycisk Show
Command Window (drugi od prawej przycisk na pasku narzÚdzi). JeĂli zamkniesz panel
2.1. Wybierz swojÈ broñ
37
Rysunek 2.5.
Pasek narzĊdzi i trzy gáówne obszary okna Ğrodowiska ISE
poleceñ i zechcesz go przywróciÊ, powinieneĂ nacisnÈÊ przycisk Show Command Add-on
(pierwszy od prawej na pasku narzÚdzi). Pierwsze trzy przyciski, które wyróĝniliĂmy na pa-
sku narzÚdzi, sterujÈ ukïadem edytora skryptów i panelu konsoli. Moĝesz ustawiÊ te panele
jeden nad drugim, obok siebie lub otworzyÊ peïnoekranowy panel edytora skryptów.
W prawym dolnym rogu okna Ărodowiska ISE znajdziesz suwak, za pomocÈ którego
moĝesz zmieniaÊ rozmiar czcionki. W menu Tools (narzÚdzia) znajdziesz polecenie
Options (opcje), za pomocÈ którego moĝna definiowaÊ niestandardowe schematy kolo-
rów i inne ustawienia wyglÈdu; moĝesz Ămiaïo eksperymentowaÊ z tymi ustawieniami.
ZRÓB TO SAM
Przyjmujemy tutaj zaïoĝenie, ĝe podczas pracy z tÈ ksiÈĝkÈ do two-
rzenia i analizowania skryptów bÚdziesz uĝywaï wbudowanego edytora skryptów
Ărodowiska ISE. Na razie jednak ukryj okienko edytora skryptów i (jeĂli chcesz)
panel poleceñ. Rozmiar czcionki moĝesz oczywiĂcie ustawiÊ wedïug wïasnego
uznania. Jeĝeli domyĂlny schemat kolorów nie odpowiada Twoim preferencjom,
równieĝ moĝesz go dowolnie zmodyfikowaÊ i dostosowaÊ do swoich potrzeb. Jeĝeli
jednak zamiast tego wolisz korzystaÊ z aplikacji konsolowej, to oczywiĂcie nic
zïego siÚ nie wydarzy — wszystkie przykïady w ksiÈĝce bÚdÈ nadal dziaïaÊ po-
prawnie. W kilku przypadkach bÚdziemy jednak omawiaÊ mechanizmy i funkcje
specyficzne dla ISE, ale w takich sytuacjach zawsze CiÚ o tym wczeĂniej poin-
formujemy, ĝebyĂ miaï szansÚ uruchomiÊ Ărodowisko ISE.
38
R
OZDZIAà
2.
Poznaj powïokÚ PowerShell
2.2. Wracamy do wpisywania poleceĔ z klawiatury
Powïoka PowerShell to interfejs wiersza poleceñ, co oznacza, ĝe bÚdziesz wpisywaÊ z kla-
wiatury wiele poleceñ. Podczas takiej pracy oczywiĂcie nie sposób uniknÈÊ prostych
literówek, ale na szczÚĂcie obie aplikacje PowerShell posiadajÈ mechanizmy wspoma-
gajÈce wpisywanie poleceñ i minimalizowanie liczby literówek.
ZRÓB TO SAM
Przykïadów opisanych poniĝej z oczywistych przyczyn nie mo-
ĝemy zilustrowaÊ w ksiÈĝce, ale fajnie bÚdzie je zobaczyÊ w dziaïaniu. Spróbuj
je wykonaÊ w powïoce PowerShell na swoim komputerze.
Aplikacja konsolowa powïoki PowerShell posiada mechanizm dopeïniania poleceñ dziaïa-
jÈcy w czterech obszarach:
Q
Wpisz
Get-S
i kilka razy naciĂnij klawisz Tab, a nastÚpnie spróbuj nacisnÈÊ kom-
binacjÚ klawiszy Shift-Tab. Powïoka PowerShell bÚdzie przechodziïa w obie strony
przez wszystkie polecenia potencjalnie pasujÈce do podanego wzorca. Kontynu-
uj naciskanie tych klawiszy aĝ do momentu, kiedy znajdziesz interesujÈce CiÚ
polecenie.
Q
Wpisz
Dir
, dodaj spacjÚ, a nastÚpnie wpisz ciÈg znaków
C:\
i naciĂnij klawisz
Tab. Powïoka PowerShell rozpocznie cykliczne przechodzenie do kolejnych
nazw plików i podfolderów z bieĝÈcego folderu.
Q
Wpisz
Set-Execu
, naciĂnij klawisz Tab, a nastÚpnie dodaj spacjÚ i myĂlnik (
-
).
Zacznij naciskaÊ klawisz Tab, aby zobaczyÊ, jak powïoka PowerShell przechodzi
przez kolejne dostÚpne parametry wybranego polecenia. Moĝna równieĝ wpisaÊ
fragment nazwy parametru (na przykïad
-E
) i nacisnÈÊ klawisz Tab, aby rozpo-
czÈÊ dopasowywanie parametrów, których nazwy rozpoczynajÈ siÚ od podanego
ciÈgu znaków. Aby wyczyĂciÊ wiersz polecenia, naciĂnij klawisz Esc.
Q
Ponownie wpisz
Set-Execu
i naciĂnij klawisz Tab. Wpisz spacjÚ, a nastÚpnie
-E
i naciĂnij znów klawisz Tab. Wpisz kolejnÈ spacjÚ i ponownie naciĂnij klawisz
Tab. PowerShell bÚdzie wyĂwietlaï kolejne dozwolone wartoĂci tego parametru,
ale dziaïa to tylko dla parametrów, które majÈ predefiniowany zestaw dozwolo-
nych wartoĂci (taki sposób dopeïniania nazywamy wyliczaniem parametrów).
Ponownie naciĂnij klawisz Esc, aby usunÈÊ wpisanÈ komendÚ; nie powinieneĂ
jeszcze teraz uruchamiaÊ tego polecenia.
¥rodowisko PowerShell ISE oferuje bardzo podobny mechanizm dopeïniania, nazy-
wany IntelliSense. Mechanizm ten bÚdzie dziaïaï we wszystkich opisanych wyĝej sytu-
acjach z uĝyciem klawisza Tab, z tym ĝe teraz na ekranie bÚdzie pojawiaïo siÚ fajne
zgrabne podrÚczne menu podpowiedzi, takie jak pokazane na rysunku 2.6. ZawartoĂÊ
menu moĝesz przewijaÊ w górÚ lub w dóï za pomocÈ klawiszy strzaïek. Kiedy znaj-
dziesz ĝÈdany element, moĝesz go wybraÊ, naciskajÈc klawisz Tab lub Enter, a nastÚp-
nie moĝesz pisaÊ dalej.
2.3. NajczÚĂciej spotykane problemy
39
Rysunek 2.6.
Mechanizm IntelliSense w Ğrodowisku ISE odgrywa tĊ samą rolĊ co klawisz Tab w konsoli
OSTRZEĩENIE
To bardzo, bardzo, bardzo, bardzo, bardzo waĝne, abyĂ podczas
pracy z powïokÈ PowerShell bardzo, bardzo, bardzo, bardzo uwaĝnie wpisywaï
wszystkie polecenia. W niektórych przypadkach pojedyncza zagubiona spacja,
pominiÚty cudzysïów, apostrof czy inny znak mogÈ spowodowaÊ, ĝe próba wy-
konania danego polecenia zakoñczy siÚ niepowodzeniem. Jeĝeli po uruchomie-
niu polecenia na ekranie pojawiajÈ siÚ komunikaty o wystÈpieniu bïÚdu, naj-
pierw zawsze dwukrotnie sprawdě, co wpisaïeĂ w wierszu polecenia.
Mechanizm IntelliSense dziaïa w panelu konsoli ISE oraz w okienku edytora skryptów.
2.3. NajczĊĞciej spotykane problemy
Omówimy teraz pokrótce kilka elementów, które w zupeïnie niezamierzony sposób
mogÈ Ci skomplikowaÊ ĝycie podczas pracy z powïokÈ PowerShell.
Q
Poziome paski przewijania w aplikacji konsolowej — ten pozornie nieszkodliwy
i bardzo przydatny mechanizm moĝe czasami wprawiÊ w konsternacjÚ nawet
caïkiem zaawansowanych uĝytkowników, o czym w ciÈgu wielu lat prowadzenia
szkoleñ przekonaliĂmy siÚ juĝ niejednokrotnie. Skonfiguruj konsolÚ tak, aby nie
miaïa poziomego paska przewijania u doïu okna. Nieco wczeĂniej w tym roz-
dziale opisywaliĂmy juĝ, jak moĝesz to zrobiÊ.
40
R
OZDZIAà
2.
Poznaj powïokÚ PowerShell
Q
32-bitowa i 64-bitowa wersja powïoki PowerShell — powinieneĂ korzystaÊ
z 64-bitowej wersji systemu Windows i uĝywaÊ 64-bitowej wersji powïoki Po-
werShell (które nie majÈ w nazwie ciÈgu znaków (x86)). Wiemy, ĝe dla niektó-
rych uĝytkowników koniecznoĂÊ kupienia 64-bitowego komputera dziaïajÈcego
pod kontrolÈ 64-bitowej wersji systemu Windows moĝe nie byÊ taka oczywista,
ale jest to inwestycja, którÈ musisz przeprowadziÊ, jeĝeli chcesz efektywnie korzy-
staÊ z powïoki PowerShell. WiÚkszoĂÊ Êwiczeñ i przykïadów omawianych w tej
ksiÈĝce bÚdzie co prawda poprawnie dziaïaÊ w 32-bitowej wersji powïoki Po-
werShell, ale szybko siÚ przekonasz, ĝe w Ărodowisku produkcyjnym uĝywanie
64-bitowej wersji tej powïoki robi powaĝnÈ róĝnicÚ.
Q
Upewnij siÚ, ĝe na pasku tytuïu okna powïoki PowerShell znajduje siÚ sïowo
Administrator. Jeĝeli go tam nie ma, zamknij to okno, ponownie kliknij prawym
przyciskiem myszy ikonÚ powïoki PowerShell i z menu podrÚcznego wybierz
polecenie Uruchom jako administrator. PamiÚtaj, ĝe w Ărodowisku produkcyjnym
nie zawsze bÚdziesz mógï to zrobiÊ, stÈd w dalszej czÚĂci tej ksiÈĝki pokaĝemy,
jak podawaÊ poĂwiadczenia logowania podczas uruchamiania poleceñ. Na razie
musisz po prostu mieÊ pewnoĂÊ, ĝe na pasku tytuïu okna powïoki PowerShell
znajduje siÚ sïowo Administrator — w przeciwnym razie moĝesz napotkaÊ póě-
niej róĝne problemy.
2.4. Jaka to wersja?
Sprawdzenie, której wersji powïoki PowerShell uĝywasz, wbrew pozorom moĝe wcale
nie byÊ takie proste, poniewaĝ kaĝda kolejna wersja jest instalowana w katalogu o na-
zwie 1.0 (odnosi siÚ to do wersji silnika jÚzyka skryptowego powïoki, co oznacza, ĝe kaĝda
wersja jest zgodna z wydaniem v1). W powïoce PowerShell v3 i nowszych istnieje jed-
nak ïatwy sposób sprawdzenia wersji. Aby to zrobiÊ, wpisz polecenie
$PSVersionTable
i naciĂnij klawisz Enter:
PS C:\> $PSVersionTable
Name Value
---- -----
PSVersion 3.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.17379
BuildVersion 6.2.8250.0
PSCompatibleVersions {1.0, 2.0, 3.0}
PSRemotingProtocolVersion 2.2
Po wykonaniu tego polecenia na ekranie wyĂwietlone zostanÈ zarówno numery wersji
poszczególnych komponentów zwiÈzanych z powïokÈ PowerShell, jak i wersja samej
powïoki. Jeĝeli opisane polecenie nie dziaïa lub jeĝeli parametr
PSVersion
nie pokazuje
wersji 3.0 lub nowszej, oznacza to, ĝe uĝywasz powïoki PowerShell w wersji, która nie
jest odpowiednia dla tej ksiÈĝki. Informacje o tym, jak pobraÊ i zainstalowaÊ najnowszÈ
wersjÚ powïoki PowerShell znajdziesz w rozdziale 1.
2.5. mwiczenia
41
ZRÓB TO SAM
Nie czekaj dïuĝej, aby zaczÈÊ korzystaÊ z powïoki PowerShell.
Zacznij od sprawdzenia numeru wersji zainstalowanej w Twoim systemie i upewnij
siÚ, ĝe korzystasz z wersji 3.0 lub nowszej. Jeĝeli tak nie jest, zanim zaczniesz
coĂ robiÊ, powinieneĂ zainstalowaÊ powïokÚ PowerShell w wersji co najmniej v3.
PowïokÚ PowerShell v3 (i jej nowsze wersje) moĝna zainstalowaÊ równolegle obok wersji
v2. Aby póěniej uruchomiÊ wersjÚ v2, moĝesz wykonaÊ polecenie
PowerShell.exe -version
2.0
. Moĝesz tak skonfigurowaÊ powïokÚ PowerShell, aby automatycznie uĝywaïa wersji v2,
jeĝeli próbujesz uruchomiÊ coĂ, co nie jest kompatybilne z wersjÈ v3 (choÊ to bardzo
rzadki przypadek). Instalator v3 nie instaluje wersji v2, zatem powïokÚ v2 bÚdziesz
mógï uruchomiÊ tylko wtedy, jeĝeli zostaïa wczeĂniej zainstalowana jako pierwsza. Insta-
latory wersji v2 i v3 bÚdÈ nadpisywaÊ wersjÚ v1 (o ile oczywiĂcie jest juĝ zainstalowa-
na), poniewaĝ te wersje nie mogÈ istnieÊ obok siebie. Nowsze wersje, takie jak v4, mo-
gÈ dziaïaÊ w trybie v2, ale nie majÈ moĝliwoĂci dziaïania w innych trybach — inaczej
mówiÈc, powïoka PowerShell v4 nie moĝe dziaïaÊ jako v3.
WSKAZÓWKA
W nowych wersjach systemu Windows domyĂlnie instalowana
jest najnowsza wersja powïoki PowerShell, choÊ mogÈ one posiadaÊ równieĝ sil-
nik powïoki PowerShell w wersji v2. W razie potrzeby moĝesz zainstalowaÊ sil-
nik v2, wykonujÈc z poziomu powïoki PowerShell polecenie
Add-WindowsFeature
powershell-v2
. Jeĝeli opcja
powershell-v2
nie jest dostÚpna w Twojej wersji sys-
temu Windows, to masz pecha, ale na szczÚĂcie w tym momencie najprawdopo-
dobniej nie bÚdziesz jej potrzebowaÊ.
2.5. ûwiczenia
Poniewaĝ sÈ to pierwsze Êwiczenia w tej ksiÈĝce, poĂwiÚcimy chwilÚ na opisanie, w ja-
ki sposób powinieneĂ je wykonywaÊ. W kaĝdym zestawie Êwiczeñ zamieszczamy kilka
zadañ, które moĝesz wykonaÊ samodzielnie. Czasami dodamy równieĝ jednÈ lub nawet
kilka podpowiedzi, tak abyĂ mógï pójĂÊ we wïaĂciwym kierunku.
Dajemy Ci peïnÈ gwarancjÚ, ĝe wszystko, co musisz wiedzieÊ, aby wykonaÊ dany
zestaw Êwiczeñ, znajduje siÚ w tym samym lub w poprzednim rozdziale (a jeĝeli bÚ-
dziesz musiaï skorzystaÊ z informacji omawianych w poprzednim rozdziale, to zazwy-
czaj poinformujemy CiÚ o tym w podpowiedziach). Nikt jednak nie twierdzi, ĝe roz-
wiÈzania poszczególnych zadañ zawsze bÚdÈ proste i oczywiste. Zazwyczaj zagadnienia
omawiane w danym rozdziale bÚdÈ pokazywaïy, w jaki sposób znajdowaÊ rozwiÈzania róĝ-
nych problemów, i przez podobny proces analizy i odkrywania bÚdziesz musiaï samo-
dzielnie przejĂÊ podczas wykonywania Êwiczeñ. PoczÈtkowo moĝe siÚ to wydawaÊ nieco
frustrujÈce, ale zmuszanie siÚ do takiej pracy w dïuĝszej perspektywie z caïÈ pewnoĂciÈ
sprawi, ĝe odniesiesz sukces w pracy z powïokÈ PowerShell. Moĝemy Ci to obiecaÊ.
PamiÚtaj, ĝe na koñcu kaĝdego rozdziaïu znajdziesz przykïadowe odpowiedzi i roz-
wiÈzania zadañ. Nasze propozycje nie zawsze muszÈ byÊ podobne do Twoich, a bÚdzie siÚ
tak zapewne zdarzaïo coraz czÚĂciej, w miarÚ jak bÚdziemy przechodziÊ do bardziej zïo-
ĝonych zagadnieñ. Nieraz przekonasz siÚ, ĝe powïoka PowerShell oferuje z póï tuzina
42
R
OZDZIAà
2.
Poznaj powïokÚ PowerShell
lub nawet wiÚcej sposobów na wykonanie niemal kaĝdego zadania. Pokaĝemy Ci metody
dziaïania, z których korzystamy najczÚĂciej, ale jeĝeli wymyĂlisz jakieĂ inne rozwiÈzanie, to
teĝ bÚdzie dobrze. Kaĝde rozwiÈzanie prowadzÈce do wykonania zadania jest poprawne.
UWAGA
Do wykonania tego zestawu Êwiczeñ potrzebny Ci bÚdzie dowolny
komputer z zainstalowanÈ powïokÈ PowerShell w wersji 3 lub nowszej.
Zaczniemy od czegoĂ ïatwego: chcielibyĂmy tylko, abyĂ skonfigurowaï konsolÚ i Ăro-
dowisko ISE do swoich potrzeb. Wykonaj nastÚpujÈcych piÚÊ kroków:
1.
Wybierz odpowiednie czcionki i kolory.
2.
Upewnij siÚ, ĝe aplikacja konsoli nie ma poziomego paska przewijania u doïu.
W tym rozdziale wspominaliĂmy o tym co najmniej trzykrotnie, wiÚc prawdopo-
dobnie jest to naprawdÚ waĝne.
3.
W Ărodowisku ISE zmaksymalizuj panel konsoli; panel poleceñ moĝesz pozo-
stawiÊ lub wyïÈczyÊ wedïug wïasnego uznania.
4.
W obu aplikacjach wpisz pojedynczy cudzysïów (
'
) oraz odwrócony apostrof (
`
)
i upewnij siÚ, ĝe moĝesz je ïatwo od siebie odróĝniÊ. Na standardowych klawia-
turach apostrof odwrócony znajduje siÚ poniĝej klawisza Esc, na tym samym
klawiszu co znak tyldy (
~
).
5.
Wpisz równieĝ znaki reprezentujÈce nawiasy okrÈgïe
()
, nawiasy kwadratowe
[]
,
znaki mniejszoĂci i wiÚkszoĂci
<>
oraz nawiasy klamrowe
{}
i upewnij siÚ, ĝe wybra-
na czcionka i jej rozmiar pozwalajÈ na ïatwe i jednoznaczne rozróĝnianie wpisa-
nych znaków. Jeĝeli wyglÈd niektórych znaków nie jest oczywisty, zmieñ krój
czcionki lub zwiÚksz jej rozmiar.
W tym rozdziale pokazywaliĂmy juĝ, jak wykonaÊ wszystkie opisane wyĝej operacje, zatem
nie ma potrzeby zamieszczania ĝadnych odpowiedzi — sam bÚdziesz dobrze wiedziaï,
czy wszystko wykonaïeĂ poprawnie.
Skorowidz
A
Active Directory, 94
akcje, 135
aktualizowanie systemu pomocy, 45
aliasy, 69
parametrów, 354
analiza skryptu, 404
anatomia polecenia, 67
aplikacja, application, 68
konsolowa, 38
apostrof, 294
atrybuty, 134
automatyzacja zarzÈdzania obiektami, 259
B
bezpieczeñstwo, 277
bloki skryptu, 396
bïÚdy, 78
C
certyfikat, 284, 369
ciÈgi znaków, 391
CIM, 232
CLI, Command Line Interface, 43
Cmdlety
CIM, 232
WMI, 232
cudzysïów, 294, 301
D
daty, 392
WMI, 394
definiowanie
parametrów obligatoryjnych, 351
widoku tabeli, 168
deklarowanie typu zmiennej, 303
delegowanie, 367
deserializacja, 219
dodawanie
aliasów parametrów, 354
moduïów, 117
przystawek, 115
dokumentacja
metod, 273
skryptu, 339
WMI, 237
domyĂlne wartoĂci parametrów, 395
dostawca, 83
dostÚp
do pomocy online, 60
do statycznej metody, 313
do tematów pomocy, 59
do wïaĂciwoĂci obiektu, 300
dostosowywanie znaku zachÚty, 386
dyski, 85
PSDrive, 91
436
Skorowidz
E
eksportowanie wyników
do pliku CSV, 98, 99
do pliku XML, 98, 100
dodawanie, 113
elementy
nadrzÚdne, 344
podrzÚdne, 86, 344
F
filtrowanie, 185
obiektów, 189
z lewej, 186, 193
foldery, 85
format HTML, 105
formatowanie
danych, 179
domyĂlne, 168
list, 173
tabel, 171
wyników, 167
funkcje powïoki, 68
G
graficzne okno dialogowe, 74
graficzny interfejs uĝytkownika, GUI, 22
H
host poĂredni, 367
I
IIS, Internet Information Server, 94
importowanie sesji, 327
instalowanie Windows PowerShell, 28
instancja, 227
IntelliSense, 39
interpunkcja, 413
ISE, Integrated Scripting
Environment, 35
K
kolekcja, 130
kolor powïoki, 386
kolumny, 418
komputer
badany, 101
odniesienia, 101
komunikacja zdalna, 245, patrz takĝe sesje,
poïÈczenie zdalne
konfiguracja, 361
niejawna, 327
opcje, 221
z wykorzystaniem hosta poĂredniego,
367
komunikat o bïÚdzie, 78
konfiguracja
komunikacji zdalnej, 361
sesji, 206, 361, 363
Ărodowiska testowego, 27
konflikty poleceñ, 120
konsola
graficzna, 309
MMC, 113, 369
tekstowa, 309
L
listy
formatowanie, 173
niestandardowe elementy, 175
szerokie, 174
luki w zabezpieczeniach, 287
ïÈczenie poleceñ, 97
M
mechanizm
CIM, 262
IntelliSense, 39
WMI, 225, 262
mechanizmy bezpieczeñstwa, 287
Skorowidz
437
metody, 130, 135
dokumentacja, 273
WMI, 273
wywoïywanie, 262
minipowïoka, 115
MMC, Microsoft Management Console,
369
model
bezpieczeñstwa, 278
poïÈczeñ, 210
moduï, 115, 117, 121
ActiveDirectory, 155
moduïy
dodawanie, 117
pobieranie, 125
problemy, 126
uĝywanie, 121
wyszukiwanie, 117
modyfikowanie
systemu, 106
ustawieñ kolorów, 386
N
nazwy skrócone poleceñ, 69
niestandardowe
kolumny, 175, 418
wïaĂciwoĂci, 418
O
obiekty, 129, 259
akcje, 135
atrybuty, 134
automatyzacja zarzÈdzania, 259
deserializacja, 219
elementy skïadowe, 134
metody, 135
odkrywanie, 133
przechowywane w zmiennej, 297
sortowanie, 136
uĝywanie, 131
wïaĂciwoĂci, 134
wybieranie ĝÈdanych wïaĂciwoĂci, 137
wyliczanie, 266
odkrywanie obiektów, 133
okno
konsoli, 33
Ărodowiska ISE, 37
opcje komunikacji zdalnej, 221
operator, 417
-as, 388
-contains, 390
-in, 390
-is, 388
-join, 389
-Match, 376
-replace, 389
-split, 389
operatory porównania, 187
operowanie
na ciÈgach znaków, 391
na datach, 392
na datach WMI, 394
P
pakowanie skryptów, 279
parametr -computerName, 216
parametry
dodawanie aliasów, 354
domyĂlne wartoĂci, 395
obligatoryjne, 52, 351
opcjonalne, 52
pozycyjne, 53, 72
sprawdzanie wartoĂci, 355
wartoĂci, 55
wspólne, 51
parametryzowanie poleceñ, 336
parsowanie plików tekstowych, 373
pliki, 85
HTML, 105
pomocy, 51, 417
wsadowe, 333
pobieranie
informacji, 309
moduïów, 125
parametrów z potoku, 419
wyników, 246
podpisywanie kodu, 280, 283
podwyraĝenie, 302
438
Skorowidz
polecenia, 43, 65
aliasy, 69, 71
anatomia, 67
do pracy ze zmiennymi, 305
do zarzÈdzania zadaniami, 251
konflikty, 120
lokalne, 216
parametryzowanie, 336
potoki, 97, 144
przekazywania danych, 146, 149
skïadnia, 214
skrócone nazwy parametrów, 71
uruchamianie, 65
w nawiasach, 158
wielokrotnego uĝytku, 334
wpisywanie nazw, 79
wpisywanie parametrów, 80
wsadowe, 260
wyodrÚbnianie wartoĂci, 159
wyszukiwanie, 198
zdalne, 216
zewnÚtrzne, 75
polecenie, command, 68
Invoke-Command, 213, 216
cmdlet, 68, 88, 106
Enter-PSSession, 210, 323
Exit-PSSession, 210
ForEach-Object, 274
Get-ADComputer, 160
Get-CimInstance, 237
Get-Help, 47
Get-Member, 133
Get-Process, 129
Get-WmiObject, 233
help, 101, 341
Invoke-Command, 213, 325
ise, 35
Man, 47
Out-GridView, 178
Read-Host, 310
Save-Help, 47
Select-String, 377
Show-Command, 73
Where-Object, 190, 192
Write-Host, 313
Write-Output, 315
polityka wykonywania skryptów, 280
poïÈczenie zdalne
jeden-do-jednego, 210
jeden-do-wielu, 210, 213
tworzone ad hoc, 220
pomoc, Patrz system pomocy
porównywanie, 187
danych, 185
plików, 101
potoki, 97, 144, 340, 419
potokowe wiÈzanie parametrów, 146
PowerShell, 23, 31
PowerShell ISE, 36
problem
drugiego skoku, 367
wielu skoków, 367
problemy, 39, 79, 108, 141, 178, 192, 222,
237, 254, 271, 306
profile powïoki, 383
protokóï
SSH, 204
SSL, 369
przechowywanie
wartoĂci, 292
wielu obiektów, 297
przekazywanie danych
ByPropertyName, 149
ByValue, 146
przeïÈcznik, 55
przepïyw pracy, workflow, 68
przestrzeñ nazw, 226
przesyïanie
danych, 178
wyników dziaïania, 104
przetwarzanie
lokalne, 217
zdalne, 217
przystawka, 113, 115
Certyfikaty, 369
przystawki
dodawanie, 115
wyszukiwanie, 115
punkty koñcowe, 206, 361, 362
R
reguïa formatowania, 170
rejestrowanie sesji, 364
repozytorium WMI, 227
rodzaje rozszerzeñ, 115
Skorowidz
439
rozszerzenia, 115, 117
usuwanie, 120
rzutowanie, 388
S
sesje, 321
importowanie, 327
konfiguracja, 361, 363
rejestrowanie, 364
rozïÈczone, 328
wielokrotnego uĝytku, 322
skïadnia
bloku Param(), 353
poleceñ, 214
wyraĝeñ regularnych, 374
skrypt, 66, 333
New-WebProject.ps1, 400
skrypty
analiza wiersz po wierszu, 404
bazowe, 349
bloki, 396
dokumentacja, 339
sparametryzowane, 337
profilu powïoki, 123, 383
zdalne, 282
sortowanie obiektów, 136
sprawdzanie wersji powïoki, 40
SQL Server, 94
symbol
zastÚpczy $_, 193, 420
wieloznaczny, 90
system
plików, 85, 87
pomocy, 43
aktualizowanie, 45
dostÚp do ogólnych tematów, 59
online, 60
wyszukiwanie poleceñ, 48
¥
Ăcieĝka, 90
Ărodowisko
PowerShell ISE, 36
testowe, 27
T
tabele
formatowanie, 171
widok, 168
TrustedHosts, 369
tworzenie
konfiguracji sesji, 363
niestandardowych
elementów list, 175
kolumn, 175
punktów koñcowych, 362
sesji, 322
zadañ lokalnych, 243
typ wyjĂcia
GridViews, 178
U
uprawnienia punktu koñcowego, 366
uruchamianie
poleceñ, 65
powïoki, 32, 123
urzÚdy certyfikacji, 285
usïuga
WinRM, 206
WMI, 228
usuwanie rozszerzeñ, 120
uwierzytelnianie wzajemne, 368
przez SSL, 369
za poĂrednictwem TrustedHosts, 369
zaawansowane, 368
uĝywanie
moduïu, 121
obiektów, 131
symbolu zastÚpczego, 420
zmiennych, 294
W
wartoĂci parametrów, 55
wczesne filtrowanie, 185
wejĂcie i wyjĂcie, 309
wersja powïoki, 40
weryfikacja, 286
wielozadaniowoĂÊ, 241
440
Skorowidz
wiersz poleceñ, 38
model iteracyjny, 190
wïaĂciwoĂci, 130, 134, 418
niestandardowe, 155
WMI, Windows Management
Instrumentation, 225
dokumentacja, 237
eksplorowanie, 230
elementy, 226
repozytorium, 227
wywoïywanie metod, 262
wstÚpne ïadowanie rozszerzeñ, 123
wyliczanie
obiektów, 266
parametrów, 38
wyodrÚbnianie wartoĂci, 159
wyraĝenia regularne, 373, 374
polecenie Select-String, 377
skïadnia, 374
z operatorem -Match, 376
wyszukiwanie
moduïów, 117
parametrów pozycyjnych, 54
poleceñ, 48, 58, 198
przystawek, 115
wyĂwietlanie
danych, 317
informacji, 309
wyników szczegóïowych, 356
wywoïywanie metod, 262
Z
zadania
asynchroniczne, 242
dziaïajÈce w tle, 244–246
podrzÚdne, 244, 249
synchroniczne, 242
zaplanowane, 253
zakoñczenie dziaïania procesów, 106
zalecenia bezpieczeñstwa, 288
zapytania WMI, 244
zarzÈdzanie
masowe obiektami, 259
produktem, 114
zadaniami, 251
zasiÚg, scope, 344, 396
globalny, 344
prywatny, 344
skryptu, 344
zasoby, 411
zatrzymywanie usïug, 106
zdalna sesja powïoki, 204
zestawy parametrów, 51
zintegrowane Ărodowisko skryptowe, ISE,
35
zmienne, 291
deklarowanie typu, 303
dobre praktyki, 306
polecenia, 305
przechowywanie
wartoĂci, 292
wielu obiektów, 297
znak zachĊty, 386