Definicja #
PowerShell to wieloplatformowa powłoka systemowa i język skryptowy opracowany przez Microsoft, po raz pierwszy wydany w 2006 roku jako Windows PowerShell. W 2016 roku Microsoft udostępnił go jako open source pod nazwą PowerShell Core (od wersji 6), działający na Windows, Linux i macOS.
PowerShell wyróżnia się na tle tradycyjnych powłok (bash, cmd) tym, że operuje na obiektach .NET zamiast na czystym tekście. Wyniki komend to w pełni typowane obiekty, które można filtrować, sortować i przekazywać między poleceniami (cmdlet'ami) za pomocą potoku (|).
Kluczowe cechy:
- Cmdlety — wbudowane polecenia w formacie Czasownik-Rzeczownik, np.
Get-Process,Set-Item - Potok obiektowy — przekazywanie obiektów między cmdletami
- Remoting — zdalne zarządzanie maszynami przez WinRM lub SSH
- Moduły — rozszerzenia, np. Az (Azure), ActiveDirectory, Exchange
- Desired State Configuration (DSC) — deklaratywna konfiguracja infrastruktury
PowerShell jest niezbędnym narzędziem dla administratorów systemów Windows, inżynierów DevOps oraz specjalistów cloud Azure.
Zastosowania #
PowerShell jest stosowany do:
- Automatyzacji zadań administracyjnych Windows — zarządzanie usługami, procesami, rejestrem, plikami
- Zarządzania infrastrukturą Azure za pomocą modułu Az (tworzenie VM, storage, sieci)
- Skryptowania CI/CD w pipeline'ach Azure DevOps i GitHub Actions
- Zarządzania Active Directory — tworzenie kont, grup, polityk GPO
- Automatyzacji konfiguracji serwerów przez DSC (Desired State Configuration)
Ścieżka nauki #
Przed nauką PowerShell warto znać podstawy systemów operacyjnych Windows i Linux oraz ogólne pojęcia z zakresu administracji IT.
Zacznij od:
- Podstawowe cmdlety: Get-Help, Get-Command, Get-Member
- Operacje na plikach i folderach:
Get-Item,Copy-Item,Remove-Item - Potoki i filtrowanie:
Where-Object,Select-Object,Sort-Object - Pętle, warunki, funkcje — podstawy języka skryptowego
Następnie poznaj:
- Remoting — Enter-PSSession, Invoke-Command
- Moduł Az do zarządzania Azure
- Obsługa błędów (
try/catch), logowanie, parametry skryptów - Desired State Configuration dla Infrastructure as Code
FAQ #
- Czym różni się PowerShell od CMD?
- CMD to stary interpreter wiersza poleceń Windows operujący na tekście. PowerShell to nowoczesna powłoka obiektowa oparta na .NET, znacznie bardziej rozbudowana — obsługuje skrypty, remoting, moduły i integrację z całym ekosystemem Microsoft.
- Czy PowerShell działa na Linuxie?
- Tak. Od wersji 6 (PowerShell Core) jest wieloplatformowy i działa na Windows, Linux i macOS. Można go pobrać ze strony Microsoft lub zainstalować przez menedżery pakietów (apt, brew, yum).
- Ile zarabia administrator znający PowerShell?
- Inżynier DevOps lub administrator systemów z biegłą znajomością PowerShell zarabia w Polsce od 9 000 do 18 000 zł brutto, w zależności od specjalizacji (Azure, AD, Windows Server).
- Jak długo uczyć się PowerShell?
- Podstawy PowerShell można opanować w 2–4 tygodnie. Biegłość w automatyzacji złożonych środowisk (Azure, AD, DSC) wymaga kilku miesięcy praktyki.
- Czy PowerShell jest przydatny w bezpieczeństwie IT?
- Tak. PowerShell jest szeroko stosowany zarówno przez administratorów bezpieczeństwa (analiza logów, audyty), jak i — niestety — przez atakujących. Znajomość PowerShell jest ważna w specjalizacjach blue team i red team.