Wprowadzenie

Powershell (PS) to powłoka interpretująca polecenia stworzona w 2006 roku jako następca cmd.exe (wcześniej z DOS command.com). Jednym z celów postawionych przez Microsoft dla wszystkich produktów serwerowych było umożliwienie przeprowadzania wszelkich zadań administracyjnych z wykorzystaniem właśnie Powershell.

CMDLET i Obiekty

Powershell pozwala na uruchamianie cmdlet – komend (wbudowanych lub dodanych przez doinstalowane oprogramowanie), których nazwy skłądają się z dwóch słów – formatu Czasownik-Rzecownik, dzięki czemy w sposób intuicyjny możemy zapamiętać co dana komenda robi. Np. Get-Command – listuje wszystkie dostępne komendy w PS.   W odróżnienia od powłok ze świata Linux, Powershell nie operuje na strumieniach danych, ale na obiektach. Każdy wykonany cmdlet zwraca obiekt. W przypadku braku zdefiniowanych działań na obiekcie, zostanie on wyświetlony na ekranie (niekoniecznie wszystkie jego atrybuty).

Potoki

W sposób analogiczny do powłow z Linux,  korzystając ze znaczek |, PS umożliwia łączenie cmdlet w potoki. W przypadku gdy komenda poprzedzająca ten znak zwróci na wyjściu więcej niż jeden obiekt, komenda występująca po tym znaku zostanie wykonana osobno dla każdego otrzymanego na wejściu obiektu.

 

Podstawowe cmdlet-y

PS cmdlet Aliasy Opis
Set-Location cd  zmienia katlog bieżacy
Get-Help man, help  wyświetla pomoc na zadany temat lub dla podanego cmdlet.
Get-Command  wyświetla listę dostępnych cmdlet w PS.
Get-Process ps  wypisuje na ekran listę uruchomionych procesów.
Select-Object  select
 Where-Object  where

Przykładowe wykorzystanie

Wyświetlenie pomocy dla polecenia select-object.

Uzyskanie pomocy na stronie internetowej:

Utworzenie zmiennej i jej wyświetlenie (PS w przypadku gdy nie wie co zrobić z poleceniem lub zmienną wykonuje domyślną metodę konwertującą ToString):

Wyświetlenie pierwszych 10 komend dostępnych w help:

Wyświetlenie wszystkich procesów wykorzystujących więcej niż 800MB pamięci operacyjnej:

Wyświetlenie wszystkich komend rozpoczynających się od słowa Wait:

Wyświetlenie wszystkich procesów, które wykorzystywały procesor przez więcej niż 400 sekund:

Ciekawostki:

  • W Powershell działa skrót klawiaturowy Ctrl-L czyszczący konsolę.
  • CMDLET są rozszerzeniem klas CMDLET lub PSCMDLET z .Net, które przykrywają metody BeginProcessing(), ProcessRecord() oraz EndProcessing(), wykonywanych odpowiednio przy uruchomieniu, przetwarzaniu kolejnych obiektów i zakończeniu działania polecenia.