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 8
PowerShell v3


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.

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ł:

 Inne języki

Ten artykuł dostępny jest również w językach: