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