Windows PowerShell® 3.0

Transkrypt

Windows PowerShell® 3.0
Ed Wilson
Windows PowerShell 3.0
Krok po kroku
®
Przekład: Marek Włodarz
APN Promise, Warszawa 2013
Spis treści
Przedmowa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
1Przegląd cech Windows PowerShell 3.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Istota Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Korzystanie z poleceń cmdlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Instalowanie Windows PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Wdrażanie Windows PowerShell w starszych systemach operacyjnych. . . . . . . . . 4
Korzystanie z narzędzi wiersza poleceń. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Problemy dotyczące zabezpieczeń. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Kontrolowanie wykonywania poleceń cmdlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Potwierdzanie akcji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Wstrzymywanie potwierdzania poleceń. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Posługiwanie się Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Wywoływanie Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Konfigurowanie konsoli Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Przekazywanie opcji do poleceń cmdlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Korzystanie z opcji pomocy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Poznawanie poleceń: ćwiczenia krok po kroku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Podsumowanie rozdziału 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2Korzystanie z poleceń cmdlet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
Podstawy poleceń cmdlet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z cmdlet Get-ChildItem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Uzyskiwanie listingu katalogu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatowanie listingu katalogu przy użyciu polecenia Format-List. . . . . . . . . .
Korzystanie z polecenia cmdlet Format-Wide. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Formatowanie listingu katalogu przy użyciu Format-Table. . . . . . . . . . . . . . . . . .
Formatowanie danych wyjściowych przy użyciu Out-GridView. . . . . . . . . . . . . . . . . .
Korzystanie z polecenia Get-Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyszukiwanie poleceń cmdlet za pomocą symboli wieloznacznych . . . . . . . . . .
Korzystanie z polecenia Get-Member. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z polecenia Get-Member do badania właściwości i metod. . . . . . . .
Korzystanie z polecenia New-Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie i korzystanie z obiektu wshShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z polecenia Show-Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jak nazewnictwo poleceń cmdlet pomaga w nauce. . . . . . . . . . . . . . . . . . . . . . . . . . .
23
24
24
26
26
28
30
35
35
40
40
45
46
47
49
iii
iv
Spis treści
Grupowanie czasowników Windows PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dystrybucja czasowników Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie profilu Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyszukiwanie wszystkich aliasów dla określonego obiektu. . . . . . . . . . . . . . . . . .
Stosowanie poleceń cmdlet: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
51
52
54
55
59
3Dostawcy PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
61
Istota dostawców PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Dostawca aliasów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Dostawca certyfikatów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Dostawca środowiska. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Dostawca systemu plików. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Dostawca funkcji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Korzystanie z dostawcy rejestru do zarządzania zawartością rejestru
systemu Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Dwa dyski rejestru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Dostawca zmiennych. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Poznawanie dostawców PowerShell: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . 98
Podsumowanie rozdziału 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4Korzystanie z funkcji zdalnych i zadań PowerShell . . . . . . . . . . . . . . . . . . 103
Funkcje zdalne Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Klasyczna praca zdalna. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
WinRM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z zadań Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z mechanizmów zdalnych Windows PowerShell: ćwiczenia
krok po kroku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
103
108
116
124
128
5Używanie skryptów PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Po co pisać skrypty Windows PowerShell?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Podstawy skryptowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Jak uruchomić skrypt Windows PowerShell?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Włączanie obsługi skryptów w Windows PowerShell . . . . . . . . . . . . . . . . . . . . . .
Przechodzenie z wiersza poleceń do skryptu. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Uruchamianie skryptów Windows PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zmienne i stałe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stałe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z wyrażenia While . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Budowanie wyrażenia While w PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Praktyczny przykład wykorzystania wyrażenia While. . . . . . . . . . . . . . . . . . . . . .
Używanie specjalnych funkcji Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z wyrażenia Do...While. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
129
131
131
132
134
137
140
145
146
146
148
149
149
Spis treści
Stosowanie operatora zakresu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Działania na tablicach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Rzutowanie znaków na wartości ASCII i odwrotnie. . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z wyrażenia Do...Until . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Porównanie konstrukcji Do...Until w PowerShell i w VBScript. . . . . . . . . . . . . . . .
Stosowanie wyrażenia Do w Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . .
Wyrażenie For. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyrażenie For w PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z wyrażenia Foreach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Przedterminowe opuszczanie wyrażenia Foreach. . . . . . . . . . . . . . . . . . . . . . . . .
Wyrażenie If. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ocenianie wielu warunków. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyrażenie Switch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z wyrażenia Switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Kontrolowanie dopasowywania. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie wielu folderów: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
150
150
151
152
152
153
154
155
157
158
160
162
163
164
166
167
170
6Praca z funkcjami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Czym są funkcje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wykorzystanie funkcji w celu ułatwienia ponownego użycia kodu. . . . . . . . . . . . .
Korzystanie z techniki dot-sourcing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z funkcji dołączonych. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stosowanie dwóch parametrów wejściowych. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stosowanie ograniczeń typów w funkcjach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Używanie więcej niż dwóch parametrów wejściowych. . . . . . . . . . . . . . . . . . . . . . . .
Dołączanie pomocy do funkcji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z obiektu here-string . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wykorzystanie funkcji do kapsułkowania logiki biznesowej. . . . . . . . . . . . . . . . . . .
Wykorzystanie funkcji w celu ułatwienia modyfikowania kodu . . . . . . . . . . . . . . . .
Istota filtrów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie funkcji: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
171
179
179
183
184
188
191
193
193
196
198
203
208
211
7Tworzenie zaawansowanych funkcji i modułów . . . . . . . . . . . . . . . . . . . . . 213
Atrybut [cmdletbinding]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Łatwe komunikaty szczegółowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Automatyczne sprawdzanie parametrów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Dodawanie obsługi parametru -whatif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Obsługa przełącznika -confirm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Specyfikowanie domyślnego zbioru parametrów. . . . . . . . . . . . . . . . . . . . . . . . . . 220
Atrybut parameter. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Właściwość mandatory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
v
vi
Spis treści
Właściwość position. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Właściwość ParameterSetName. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Właściwość ValueFromPipeline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Właściwość HelpMessage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Moduły . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lokalizowanie i ładowanie modułów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyświetlanie dostępnych modułów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ładowanie modułów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instalowanie modułów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie folderu Modules użytkownika. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie dysku modułów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sprawdzanie zależności modułów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Używanie modułu z udziału sieciowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie modułu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie zaawansowanej funkcji: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
223
224
225
226
227
227
227
230
232
232
237
239
242
244
250
254
8Korzystanie z Windows PowerShell ISE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Uruchamianie Windows PowerShell ISE. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Poruszanie się po narzędziu Windows PowerShell ISE. . . . . . . . . . . . . . . . . . . . . .
Korzystanie z panelu skryptu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dopełnianie tabulatorem i IntelliSense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie ze wstawek kodu w Windows PowerShell ISE. . . . . . . . . . . . . . . . . . . . .
Używanie wstawek Windows PowerShell ISE do tworzenia kodu. . . . . . . . . . . .
Tworzenie nowych wstawek Windows PowerShell ISE. . . . . . . . . . . . . . . . . . . . . .
Usuwanie wstawek zdefiniowanych przez użytkownika . . . . . . . . . . . . . . . . . . . .
Korzystanie z przystawki Commands: ćwiczenia krok po kroku. . . . . . . . . . . . . . . .
Podsumowanie rozdziału 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
255
256
259
260
262
262
264
265
266
269
9Stosowanie profili Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Sześć profili PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Istota różnych profili Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Badanie zmiennej $profile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ustalanie, czy konkretny profil istnieje. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie nowego profilu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Uwarunkowania projektowe profili. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z jednego lub więcej profili. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z profilu All Users, All Hosts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z własnego pliku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Grupowanie zbliżonej funkcjonalności w modułach. . . . . . . . . . . . . . . . . . . . . . . . . .
Gdzie umieścić moduł profilu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie profilu: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
271
272
272
274
275
275
277
279
280
282
282
283
286
Spis treści
10 Korzystanie z WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Istota modelu WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Posługiwanie się obiektami i przestrzeniami nazw. . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyliczanie dostawców WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z klas WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Odpytywanie WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Uzyskiwanie informacji o usługach: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
288
288
293
294
298
303
310
11 Odpytywanie WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Alternatywne metody łączenia się z WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Selektywne odczytywanie danych ze wszystkich instancji. . . . . . . . . . . . . . . . . . .
Wybieranie wielu właściwości . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wybieranie konkretnych instancji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stosowanie operatorów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Gdzie jest where?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Skracanie składni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Praca z oprogramowaniem: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
311
320
321
325
326
330
330
333
340
12 Zdalne kwerendy WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Używanie WMI wobec systemów zdalnych. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dostarczanie alternatywnych poświadczeń dla połączenia zdalnego. . . . . . . . .
Wykorzystanie mechanizmu zdalnego Windows PowerShell
do wywoływania WMI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wykorzystanie CIM do odpytywania klas WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Praca ze zdalnymi rezultatami. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Redukowanie rozmiaru danych za pomocą argumentów Windows
PowerShell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Uruchamianie zadań WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z mechanizmów zdalnych Windows PowerShell WMI:
ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
341
343
346
347
349
352
353
356
358
13 Wywoływanie metod w klasach WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
Wykorzystywanie poleceń cmdlet WMI do wykonywania metod instancji. . . . . . .
Bezpośrednie stosowanie metody terminate. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z polecenia cmdlet Invoke-WmiMethod. . . . . . . . . . . . . . . . . . . . . .
Korzystanie z akceleratora typu [wmi] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wykorzystanie WMI do pracy z metodami statycznymi. . . . . . . . . . . . . . . . . . . . . . .
Wykonywanie metod instancji: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
359
361
363
364
365
369
371
vii
viii
Spis treści
14 Korzystanie z poleceń CIM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Eksplorowanie klas WMI przy użyciu poleceń CIM. . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z argumentu -classname. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyszukiwanie metod klas WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Filtrowanie klas przy użyciu kwalifikatora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Odczytywanie instancji klas WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Redukowanie liczby zwracanych właściwości i instancji . . . . . . . . . . . . . . . . . . . .
Czyszczenie wyjścia polecenia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Praca ze skojarzeniami. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Odczytywanie instancji klas WMI: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 14. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
373
374
374
375
377
378
379
380
385
388
15 Praca z Active Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Tworzenie obiektów w Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie OU. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Dostawcy ADSI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Nazwy LDAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie użytkowników. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Czym jest kontrola konta użytkownika?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Praca z użytkownikami. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie wielu jednostek organizacyjnych: ćwiczenia krok po kroku. . . . . . . . . .
Podsumowanie rozdziału 15. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
389
390
391
394
400
403
404
419
424
16 Korzystanie z modułu AD DS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Istota modułu Active Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instalowanie modułu Active Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wprowadzenie do modułu Active Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z modułu Active Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyszukiwanie wzorców operacji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Poznawanie struktury Active Directory. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Przemianowywanie lokacji Active Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zarządzanie jednostkami organizacyjnymi, użytkownikami i grupami. . . . . . . .
Tworzenie użytkownika. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyszukiwanie i odblokowywanie kont użytkowników Active Directory . . . . . .
Selektywne wybieranie kont użytkowników . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyszukiwanie nieużywanych kont użytkowników. . . . . . . . . . . . . . . . . . . . . . . . .
Aktualizowanie obiektów Active Directory: ćwiczenia krok po kroku . . . . . . . . . . .
Podsumowanie rozdziału 16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
425
425
427
427
429
434
437
438
441
443
445
446
449
452
17 Wdrażanie AD DS w systemie Windows Server 2012. . . . . . . . . . . . . . . . 453
Wdrażanie nowego lasu przy użyciu modułu Active Directory. . . . . . . . . . . . . . . . .
Dodawanie nowego kontrolera domeny do istniejącej domeny. . . . . . . . . . . . . . . .
Dodawanie kontrolera domeny tylko do odczytu. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instalowanie kontrolera domeny: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . .
453
460
462
464
Spis treści
Podsumowanie rozdziału 17. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
18 Debugowanie skryptów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
Debugowanie w Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Trzy rodzaje błędów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z polecenia cmdlet Set-PSDebug. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Śledzenie skryptu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Krokowe wykonywanie skryptu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Włączanie trybu ścisłego. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z polecenia Set-PSDebug -Strict. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z polecenia Set-StrictMode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Debugowanie skryptu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ustawianie punktów wstrzymania. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ustawianie punktu wstrzymania według numeru wiersza . . . . . . . . . . . . . . . . . .
Ustawianie punktu wstrzymania dla zmiennej . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ustawianie punktu wstrzymania dla polecenia. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Wyliczanie punktów wstrzymania. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Włączanie i wyłączanie punktów wstrzymania. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Usuwanie punktów wstrzymania. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Debugowanie funkcji i skryptów: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
469
470
476
476
480
487
487
488
490
491
491
493
497
499
501
501
502
506
19 Obsługa błędów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
Obsługa brakujących parametrów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie domyślnej wartości dla parametru. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ustawianie parametru jako wymaganego. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ograniczanie wyboru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z PromptForChoice do ograniczania wyboru. . . . . . . . . . . . . . . . . . .
Wykorzystanie Test-Connection do sprawdzania dostępności komputerów . . .
Wykorzystanie operatora -contains do badania zawartości tablicy . . . . . . . . . .
Wykorzystanie operatora -contains do testowania właściwości. . . . . . . . . . . . . .
Obsługiwanie brakujących uprawnień. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Próba i niepowodzenie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sprawdzenie uprawnień i wyjście . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Obsługa niedostępnych dostawców WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Niewłaściwe typy danych. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Błędy przekroczenia zakresu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Stosowanie funkcji sprawdzania zakresu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Narzucanie ograniczeń na parametry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Używanie konstrukcji Try...Catch...Finally. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Przechwytywanie wielu błędów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Korzystanie z metody PromptForChoice do ograniczania wyboru:
ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
508
508
509
510
511
512
514
516
519
519
519
520
529
533
534
535
536
539
542
544
ix
x
Spis treści
20 Zarządzanie serwerem Exchange. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
Poznawanie poleceń cmdlet Exchange 2010. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Praca ze zdalnymi serwerami Exchange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Konfigurowanie ustawień odbiorców. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie konta użytkownika i skrzynki pocztowej. . . . . . . . . . . . . . . . . . . . . . . .
Raportowanie ustawień użytkowników . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zarządzanie ustawieniami magazynowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Badanie bazy danych skrzynek pocztowych. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zarządzanie bazami danych skrzynek pocztowych. . . . . . . . . . . . . . . . . . . . . . . .
Zarządzanie rejestrowaniem zdarzeń w Exchange. . . . . . . . . . . . . . . . . . . . . . . . . . . .
Zarządzanie inspekcją. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analizowanie pliku inspekcji w formacie XML. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Tworzenie kont użytkowników: ćwiczenia krok po kroku. . . . . . . . . . . . . . . . . . . . . .
Podsumowanie rozdziału 20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
545
547
549
550
554
556
556
557
559
562
567
571
576
A Bazowe polecenia cmdlet Windows PowerShell . . . . . . . . . . . . . . . . . . . . . 577
B Liczebność modułów Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . . 587
C Nazewnictwo poleceń Windows PowerShell. . . . . . . . . . . . . . . . . . . . . . . . . 591
D Windows PowerShell FAQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595
E Użyteczne klasy WMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603
F Podstawowe wskazówki dotyczące rozwiązywania problemów . . . . . 629
G Ogólne wskazówki skryptowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
H Czasowniki PowerShell i ich polskie znaczenie. . . . . . . . . . . . . . . . . . . . . . . 641
Indeks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 649
O autorze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689