encyklopedia.space

PowerShell

PowerShell to zintegrowane środowisko skryptowe i powłoka wiersza poleceń opracowane przez Microsoft. Pierwsza wersja, znana jako Windows PowerShell, została wydana w 2006 roku jako część zestawu narzędzi administracyjnych systemu Windows. Od wersji 6, PowerShell stał się platformą wieloplatformową, określaną jako PowerShell Core, dostępna także na systemy Linux i macOS.

Historia

Projekt PowerShell rozpoczął się w latach 2002, a jego twórcą był Jeff Rodriguez. Celem było stworzenie nowoczesnej powłoki, która łączy w sobie możliwości tradycyjnych interpreterów wiersza poleceń (np. cmd.exe) oraz pełnoprawnego języka skryptowego, opartego o platformę .NET. Pierwsza wersja, oznaczona numerem 1.0, została udostępniona publicznie w listopadzie 2006 roku jako element Windows Management Framework.

Architektura

PowerShell składa się z kilku podstawowych elementów:

  • Silnik skryptowy – interpreter języka, który przetwarza polecenia i skrypty.
  • Cmdlet-y – wbudowane polecenia, napisane w językach C# lub C++, realizujące konkretne zadania administracyjne.
  • Pipelining – mechanizm przekazywania obiektów między cmdlet‑ami, umożliwiający budowanie złożonych operacji.
  • Providerzy – warstwa abstrakcji umożliwiająca dostęp do różnych źródeł danych (system plików, rejestr, certyfikaty, usługi itp.) w postaci jednorodnego interfejsu.
  • Środowisko uruchomieniowe – w wersji Windows opiera się na .NET Framework, a od wersji 6 – na otwarto‑źródłowym .NET Core (obecnie .NET 5/6/7).

Składnia i podstawowe elementy

PowerShell operuje na obiektach .NET, co odróżnia go od tradycyjnych powłok, które przetwarzają jedynie tekst. Przykładowe konstrukcje:

# Pobranie listy procesów i wyświetlenie ich nazw
Get-Process | Select-Object -Property Name

# Zmiana uprawnień pliku
Set-Acl -Path 'C:\Temp\plik.txt' -AclObject $acl

# Pętla foreach
foreach ($item in Get-ChildItem -Path C:\Logi) {
    Write-Output $item.FullName
}

W PowerShell można definiować funkcje, moduły i klasy, co umożliwia tworzenie rozbudowanych aplikacji skryptowych. Przykład funkcji:

function Get-Hi {
    param(
        [string]$Name = 'Świecie'
    )
    Write-Host "Witaj, $Name!"
}

Zastosowania

PowerShell jest szeroko wykorzystywany w następujących obszarach:

  • Administratorzy systemowi używają go do automatyzacji zadań konfiguracyjnych, zarządzania Active Directory, usług chmurowych (np. Azure), oraz wdrażania poprawek.
  • Programiści wykorzystują PowerShell do budowania skryptów testowych, CI/CD oraz do automatyzacji procesów developerskich.
  • Specjaliści ds. bezpieczeństwa stosują PowerShell w testach penetracyjnych oraz w analizie zdarzeń (np. logi z systemu Windows Event Log).
  • W środowiskach hybrydowych PowerShell służy jako most łączący technologię Windows z platformami Open Source, takimi jak Linux, dzięki modułowi PowerShell Remoting oraz SSH.

Porównanie z innymi powłokami

W odniesieniu do innych popularnych środowisk wiersza poleceń, PowerShell wyróżnia się następującymi cechami:

Cecha PowerShell cmd.exe Bash
Model danych Obiekty .NET Tekst Tekst
Pipeline Obiekty Tekst Tekst
Wieloplatformowość Tak (Windows, Linux, macOS) Tylko Windows Tak (Linux, macOS, Windows WSL)
Rozszerzalność Moduły .NET, C#, VB.NET Ograniczona Skrypty Bash, narzędzia Unix

PowerShell Core i wersje późniejsze

Od wersji 6.0 PowerShell Core przeszedł na otwarto‑źródłowy silnik .NET Core, co umożliwiło uruchamianie go na systemach Linux i macOS. Aktualnie najnowszą stabilną wersją jest PowerShell 7.x, która zawiera liczne ulepszenia wydajności, nowe cmdlet‑y oraz pełną kompatybilność z wcześniejszymi skryptami Windows PowerShell.

Przyszłość i rozwój

Microsoft kontynuuje rozwój PowerShell, wprowadzając nowe funkcje takie jak:

  • Wsparcie dla Azure Arc i zarządzanie zasobami chmurowymi bezpośrednio z poziomu powłoki.
  • Rozszerzone możliwości debugowania i profilowania skryptów.
  • Integracja z GitHub Actions oraz innymi platformami CI/CD.
  • Ulepszone narzędzia do automatyzacji kontenerów (Docker, Kubernetes).

Bibliografia

Więcej informacji można znaleźć w artykułach encyklopedycznych: