Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wstęp
Windows PowerShell jest jednocześnie skryptowym językiem programowania jak i powłoką wiersza poleceń stworzonym przez Microsoft w celu zapewnienia łatwego, a zarazem wydajnego narzędzia do zarządzania i automatyzacji mechanizmów systemu Windows i produktów pochodnych. Najpopularniejszą formą wykorzystywania PowerShell’a jest praca z interaktywną konsolą (powershell.exe) oraz wykonywanie plików skryptów (z rozszerzeniem ps1 przy wykorzystaniu powershell.exe). Głównymi cechami PowerShell’a są: integracja z .NET’em, wykorzystywanie przetwarzania potokowego (pipeline), łatwy dostęp do różnych elementów systemu (WMI, ADSI, COM, .NET, itp) oraz standaryzacja pracy pozwalająca na łatwe odkrywanie i szybką naukę nowych funkcji gdy poznasz już podstawy języka. PowerShell wykorzystuje specjalne polecenia zwane cmdlet’ami (command-let), kótre mogą obsługiwać obiekty .NET’a na swoim wejściu oraz wyjściu. Przy pomocy PowerShell’a można również wykorzystywać narzędzia klasycznego wiersza poleceń.
Aby zapewnić dostęp do innych hierarchicznych struktur danych takich jak np. system plików, rejestry czy certyfikaty, PowerShell wykorzystuje „dostawców”, którzy prezentują inne struktury danych w podobny sposób jak system plików. Na przykład, można używać tych samych poleceń jak do zmiany katalogu w przypadku przeglądania kluczy rejestru.
Zewnętrzne aplikacje mogą wykorzystywać PowerShell’a, do automatyzacji niektórych zadań, a nawet do budowania graficznego interfejsu użytkownika (np. Exchange czy VMM). Pozwala to na nowe podejście do automatyzacji zadań w aplikacjach: można w graficzny sposób przy użyciu kreatorów wykonywać czynności, a następnie uzyskać kod skryptu dla tego działania, można go później zmodyfikować i wykorzystać do automatyzacji.
Obsługa Windows PowerShell jest implementowana do większości produktów Microsoft, jak m.in. Microsoft Server. Jest to egzekwowane przez Microsoft Common Engineering Criteria (CEC).
Wersje
We wczesnych stadiach rozwoju PowerShell nosił nazwę kodową “Monad”. Później został również nazwany „Microsoft Shell” obsługując rozszerzenia plików skryptowych - .msh
Obecnie Microsoft wspiera dwie wersje PowerShell’a - v1 oraz v2. Obie wydane wersje obsługują te same rozszerzenia plików – ps1 oraz instalują się w tej samej ścieżce %windir%\system32\WindowsPowerShell\v1.0\
Wersja 2.0 jest najnowszą wersją i jest dostępna dla poszczególnych systemów: Windows XP SP2+, Windows 2003, Windows Vista, Windows 2008, Windows 7, Windows 2008 R2.
Obecnie trwają prace nad wersją PowerShell v3.
Funkcje
Windows PowerShell zawiera wiele funkcjonalnych cech, które odróżniają go od innych jezyków skryptowych czy wierszy poleceń. Niektóre z tych funkcji dostępne są tylko w wersji PowerShell 2.0, a niektóre są uzależnione od specyficznych składników systemu Windows. Oto lista niektórych takich cech:
- Przetwarzanie potokowe, które pozwala na przekazywanie obiektu z jednego cmdletu do drugiego, bez potrzeby korzystania z parsowania tekstu czy zmiany formatowania.
- Łatwy dostęp do .NET Framework, WMI, ADSI czy COM.
- Wszystkie obiekt PowerShell’a prezentowane są spójny sposób, przez co można podejrzeć jego właściwości i metody przy użyciu cmdletu Get-Member.
- „Dostawcy” PowerShell’a pozwalają na dostęp do różnych struktur danych jak np. rejestry certyfikaty, zmienne środowiskowe, funkcje czy aliasy tak jak do systemów pliku.
- Moduły i przystawki pozwalają na rozszerzanie powłoki poprzez dodawanie nowych cmdletów.
- Polityka wykonywania kontroluje proces wykonywania skryptów w zależności czy pochodzi on z zaufanego źródła.
- W powerShell’u możliwe jest autouzupełnianie nazw poleceń, parametrów, właściwości czy metod dowolnego obiekty przy użyciu klawisza Tab.
- Rozbudowana pomoc oraz dokumentacja online dotycząca każdego cmdletu dostępna przy użyciu Get-Help.
- Wbudowany graficzny edytor skryptów obsługujący m.in. kolorowanie składni - PowerShell ISE.
- Obsługa pracy zdalnej, która wykorzystuje protokół WinRM, pozwala na interaktywne zarządzanie wieloma zdalnymi maszynami.
- Wiele zadań może być wykonywanych jednocześnie przy wykorzystaniu pracy w tle. Takie zadania mogą być uruchamiane nawet na zdalnych maszynach.
Jak zainstalować PowerShell
W zależności od używanego systemu operacyjnego, PowerShell może być domyślnie zainstalowany albo wymaga ręcznego pobrania i instalacji lub po prostu włączenia jako kolejnej funkcjonalności. Wersja 2.0 jest dostępna do pobrania w pakiecie nazwanej Windows Management Framework i zawiera on WinRM 2.0 oraz BITS 4.0. Może być pobrany stąd lub z usługi Windows Update czy WSUS jako aktualizacja opcjonalna.
Poniższa tabela zawiera listę wersji PowerShell’a domyślnie instalowanych na poszczególnych systemach.
| System Operacyjny | Wersja PowerShell’a | Komentarz |
|---|---|---|
| Windows XP SP2 | Brak | .Net Framework 2.0 SP1 wymagany przed instalacją PowerShell’a |
| Windows Server 2003 | Brak | .Net Framework 2.0 SP1 wymagany przed instalacją PowerShell’a |
| Windows Vista | Brak | |
| Windows Server 2008 Full Installation | Brak | PowerShell jest zawarty w dystrybucji i może być instalowany jako wyposażenie opcjonalne (feature). |
| Windows Server 2008 Server Core | Brak | Z racji braku obsługi .NET’a, PowerShell nie jest wspierany na systemie Windows Server 2008 Core. Jednakże w przypadku zastosowania pewnych modyfikacji jest to wykonalne, opis można znaleźć tutaj, lecz rozwiązanie to nie jest wspierane przez Microsoft. |
| Windows 7 | PowerShell v2 | |
| Windows Server 2008 R2 Full Installation | PowerShell v2 | PowerShell ISE nie jest domyślnie instalowane, ale jest dostępne jako dodatek (feature). |
| Windows Server 2008 R2 Server Core | Brak | PowerShell może być doinstalowany opcjonalnie przy użyciu narzędzia DSIM: dism.exe /online /enable-feature /featurename:"NetFx2-ServerCore" /featurename:"MicrosoftWindowsPowerShell" |
| Windows 8 |
PowerShell v3 |
|
| Windows Server 2012 |
PowerShell v3 |
|
| Windows 8.1 | PowerShell v4 | |
| Windows Server 2012 R2 | PowerShell v4 |
PowerShell moduły, rozszerzenia i przystawki
Od momentu wydania PowerShell’a pojawiło się wiele dodatkowych rozszerzeń związanych ze wsparciem oprogramowania Microsoft, a nawet produktów innych wydawców. Istnieje również wiele dodatkowych rozwiązań napisanych przez samych użytkowników społeczności PowerShell.
- [[PowerShell-enabled technologies]]
- [[Popular PowerShell Modules]]
- [[List of Windows Features and Roles that Take Advantage of Windows PowerShell]]
Edytory i konsole PowerShell’a
PowerShell nie ogranicza się tylko do natywnej konsoli powershell.exe czy edytora graficznego PowerShell ISE. Na chwilę obecną istnieje wiele innych rozwiązań wspieranych przez firmy trzecie lub społeczności, a nawet możliwe jest stworzenie własnego klienta przy wykorzystaniu dokumentacji jaką możemy znaleźć tutaj.
Nauka PowerShell’a
Istnieje wiele ogólnie dostępnych źródeł informacji na temat języka Windows PowerShell, m.in. naukę można zacząć od tych źródeł:
- [[Windows PowerShell Survival Guide]]
- Official Windows PowerShell Page
Inne języki
Ten artykuł dostępny jest również w językach: