Co to są skrypty programu Windows PowerShell?

Podstawowe informacje o pracy z PowerShell

  • PowerShell to wszechstronny język skryptowy, który ułatwia automatyzację różnorodnych działań na komputerze.
  • Cmdlety, czyli polecenia cmdlet, to pojedyncze instrukcje wykonywane w środowisku PowerShell. Dostępne polecenia można wyświetlić za pomocą polecenia „Get-Command”.
  • Aplikacja PowerShell działa na systemach Windows, macOS i Linux.

PowerShell to język skryptowy, który pozwala na łatwą i stabilną automatyzację zadań komputerowych. Zapoznaj się z jego możliwościami, aby zacząć tworzyć własne skrypty na komputerach z systemem Windows.

Przegląd skryptów PowerShell

Aby zacząć pisać proste skrypty w PowerShell na platformie Windows, trzeba zrozumieć trzy podstawowe elementy:

  • Polecenia cmdlet: pojedyncze instrukcje, które realizują konkretne zadania.
  • Parametry: za ich pomocą precyzuje się działanie poleceń, określając co, kiedy, gdzie i jak mają być wykonane.
  • Potok (pipeline): umożliwia przekazywanie wyników jednego polecenia do innego, tworząc sekwencję działań.

Łącząc te trzy elementy, można konstruować proste skrypty, które automatyzują powtarzalne czynności.

Przykładowy potok ilustruje, jak łączyć kilka poleceń cmdlet w celu wykonania konkretnego zadania:

Aby uruchomić przedstawiony potok w PowerShell, należy użyć instrukcji podobnej do poniższej:

 Get-Object Potato | Peel-Object | Chop-Object Chips| Cook-Object DeepFry `
| Place-Object Bowl

Szczegóły dotyczące poleceń cmdlet

Podobnie jak inne języki skryptowe, PowerShell zawiera wbudowane polecenia do manipulowania obiektami i wykonywania różnorodnych zadań. Te podstawowe polecenia nazywane są cmdletami.

Cmdlety (czyt. komendlety) to małe, pojedyncze polecenia, używane w środowisku PowerShell i zapisane w plikach z rozszerzeniem .dll. Są to lekkie fragmenty kodu, które dzięki swojej skompilowanej formie działają szybciej niż funkcje.

W PowerShell dostępne są tysiące cmdletów. Nie ma konieczności uczenia się ich wszystkich od razu. Na początek warto poznać kilka podstawowych poleceń i sukcesywnie rozszerzać swoją wiedzę w miarę postępów w nauce tworzenia skryptów. Aby zobaczyć listę cmdletów zainstalowanych na komputerze, wpisz:

 Get-Command 

Analizując wyniki, łatwo zauważyć, że nazwy cmdletów składają się z czasownika i rzeczownika. Taka konwencja ułatwia zrozumienie ich działania.

Na przykład, Get-Command wyświetla listę dostępnych poleceń. Get-Process pobiera listę aktualnie działających procesów, a Copy-Item służy do kopiowania plików i folderów.

Do cmdletów dołączona jest szczegółowa dokumentacja z przykładami, instrukcjami użycia oraz wyjaśnieniem ich funkcji.

Aby dowiedzieć się więcej o konkretnym cmdlecie i jego parametrach, wpisz:

 Get-Help <nazwa-cmdletu> 

Wyjaśnienie parametrów programu PowerShell

Polecenia cmdlet mogą przyjmować parametry, które modyfikują ich działanie. Po uruchomieniu cmdletu można wprowadzić wartości parametrów, aby określić co, kiedy, gdzie i jak ma zostać wykonane zadanie.

Na przykład Get-Process pobiera listę wszystkich aktywnych procesów w systemie operacyjnym:

A co, jeśli chcemy uzyskać tylko informacje o konkretnym procesie? Można to zrobić przy użyciu parametrów. Przykładowo, aby wyświetlić informacje o wszystkich procesach Slack, można użyć parametru Name w cmdlecie Get-Process:

 Get-Process -Name Slack 

W wyniku zostaną wyświetlone tylko procesy o nazwie „slack”:

Niektóre parametry są „pozycyjne”, co oznacza, że ich nazwa nie jest konieczna. W tym przypadku Get-Process -Name Slack i Get-Process Slack mają identyczne działanie.

Każdy cmdlet akceptuje różne parametry. Aby sprawdzić listę dostępnych parametrów, należy użyć polecenia Get-Help, a następnie przejść do sekcji SKŁADNIA.

 Get-Help Get-Process 

Wyświetli się lista wszystkich możliwych sposobów uruchomienia danego cmdletu:

W tym przykładzie, cmdlet Get-Process akceptuje parametry takie jak Name (nazwa), Id (identyfikator), ComputerName (nazwa komputera), Module (moduł), FileVersionInfo (informacje o wersji pliku) oraz inne standardowe parametry. Poniższa tabela wyjaśnia znaczenie symboli:

Symbol Nazwa Znaczenie
Pusty Parametr nie przyjmuje danych wejściowych
Łącznik Oznacza nazwę parametru
<> Nawiasy kątowe Symbol zastępczy dla tekstu
[] Nawiasy kwadratowe Parametr, który może przyjąć jedną lub więcej wartości
{} Nawiasy klamrowe Parametr akceptuje zbiór wartości

Parametry przyjmujące dane wejściowe wskazują typ danych, które są wymagane, np. ciąg znaków, liczba całkowita, wartość logiczna, data i czas. Na przykład zapis:

 Get-Process [[-Name] <string[]>] 

Oznacza, że parametr Name akceptuje jedną lub więcej wartości typu string, natomiast zapis:

 Get-Process -Id <int[]> 

Oznacza, że parametr Id akceptuje jedną lub więcej wartości całkowitych.

W poprzednim przykładzie parametr Name został wykorzystany do zawężenia wyników. Jeśli jednak chcemy jeszcze bardziej precyzyjnie wskazać proces, możemy użyć parametru ID, który przyjmuje liczbę całkowitą, zgodnie ze swoją składnią.

 Get-Process -Id 3016 

W efekcie powinien zostać wyświetlony tylko jeden proces:

Tworzenie potoku

PowerShell traktuje wszystkie dane jako obiekty. Podczas tworzenia skryptu obiekty te przepływają przez serię cmdletów lub funkcji połączonych symbolem potoku ( | ). Dobór odpowiednich cmdletów i połączenie ich w logiczną sekwencję za pomocą potoku jest kluczowe dla efektywnego działania skryptu.

Załóżmy, że chcemy napisać skrypt, który posortuje i wyświetli pięć plików, które zajmują najwięcej miejsca w danym folderze. Istnieją bardziej złożone sposoby tworzenia takiego skryptu, ale poniższy uproszczony opis jest łatwiejszy do zrozumienia:

Aby zrealizować to w PowerShell, można użyć potoku o następującej strukturze:

 Get-ChildItem -Path "C:\Directory" -File | Sort-Object Length -Descending `
| Select-Object -First 5 | Format-Table Name, Length -AutoSize

Zapisywanie potoku jako skryptu PS1

Po utworzeniu działającego potoku, można go zapisać jako plik skryptu z rozszerzeniem PS1, dzięki czemu nie będzie trzeba go wpisywać za każdym razem, gdy będzie potrzebny.

Najprostszym sposobem utworzenia pliku PS1 jest wklejenie skryptu do Notatnika i zapisanie pliku z rozszerzeniem .ps1.

Po utworzeniu pliku PS1 można go uruchomić w PowerShell, wpisując: ./NazwaSkryptu.ps1

Gratulacje! Udało ci się stworzyć swój pierwszy skrypt PowerShell PS1.

PowerShell jest dostępny także na Linux i macOS

PowerShell to jeden z najlepszych języków skryptowych dla początkujących. Choć wcześniej był ograniczony do systemu Windows, zaktualizowana wersja działa teraz również na macOS i wielu dystrybucjach Linux. To sprawia, że PowerShell jest jeszcze bardziej atrakcyjny, ponieważ zdobytą wiedzę można przenieść na inne platformy.


newsblog.pl