Władaj systemem

System Windows zaprojektowano tak, by korzystanie z niego odbywało się z użyciem myszki i graficznego interfejsu użytkownika. Istnieje jednak inny sposób wydawania poleceń w Windows trudniejszy dla początkujących, ale za to znacznie bardziej efektywny. Pokażemy, jak go skutecznie używać.

Władaj systemem

Windows PowerShell nie jest językiem programowania, nie musisz być programistą, aby z niego korzystać. Co prawda za pomocą PowerShella można tworzyć nawet bardzo rozbudowane skrypty automatyzujące pracę systemu Windows, ale bardzo często używa się go w tzw. trybie interaktywnym, tj. wpisujesz polecenie, następuje jego wykonanie i obserwujesz wyniki. Wpisujesz kolejne polecenie, zostaje ono wykonane itd.

PowerShell jest interpreterem poleceń. Być może znasz tzw. wiersz poleceń, niewielki program, który pozwala na wydawanie systemowi poleceń bezpośrednio przez ich wpisywanie – to też jest interpreter poleceń. Standardowe interpretery, takie jak command.com czy cmd.exe umożliwiają np. sformatowanie dysku, wyświetlenie listy plików i katalogów, manipulację plikami, tworzenie folderów, sprawdzanie i konfigurowanie urządzeń sieciowych. Są jednak przestarzałe i wiele funkcji współczesnych wersji Windows jest dla tych programów niedostępnych.

Możliwości PowerShella są bardzo duże. W przeciwieństwie do cmd.exe czy command.com jest w stanie dotrzeć do każdej funkcji dostępnej przez API (Application Programming Interface – interfejs programowania aplikacji) Windows. Oznacza to, że można wywołać każdą funkcję systemu Windows.

Jak zdobyć PowerShell

Windows PowerShell (w najnowszej wersji 2.0) jest interpreterem poleceń przeznaczonym do pracy m.in. w Windows XP (od wersji SP3), Windows Vista oraz Windows 7. W Windows 7 dodatek ten jest instalowany razem z systemem. Jeśli korzystasz z innej wersji systemu, to przed rozpoczęciem działań opisywanych w warsztatach pobierz i zainstaluj PowerShella w wersji właściwej dla wykorzystywanego przez ciebie systemu operacyjnego. Szczegóły odnośnie instalacji w Windows XP podajemy w ramce na dole strony. Wszystkie dostępne wersje PowerShell znajdziesz pod adresem http://support.microsoft.com/kb/968929 lub http://support.microsoft.com/kb/968930. Po kliknięciu odnośnika właściwego dla danej wersji Windows na kolejnej stronie zmień język na polski i rozpocznij pobieranie.

PowerShell dla użytkowników Windows XP

Jak zainstalować mechanizm PowerShell w Windows XP? Oto szczegółowe wskazówki:

Krok 1

Uruchom przeglądarkę WWW i odwiedź stronę http://support.microsoft.com/kb/968929. Następnie przewiń zawartość wczytanej strony do części zatytułowanej: Windows Management Framework Core i kliknij odsyłacz: Download the Windows Management Framework Core for Windows XP.

Krok 2

Na kolejnej stronie, w sekcji Quick details rozwiń listę Change Language i wybierz z niej pozycję Polish.

Obraz

Krok 3

Zostanie wczytana kolejna, już polskojęzyczna strona. Kliknij na niej przycisk Pobierz. W oknie Otwieranie kliknij Zapisz plik. Gdy plik zostanie pobrany, uruchom go. Prawdopodobnie zobaczysz okno: Otwórz plik - ostrzeżenie o zabezpieczeniach. Kliknij w nim Uruchom.

Obraz
Obraz

Krok 4

Uwaga, jeżeli w twoim systemie nie ma zainstalowanego wymaganego dodatku .NET Framework 2 SP1, pojawi się okno komunikatu Błąd instalatora. Zainstaluj wymagany składnik (link do strony pobierania zawarty jest w treści komunikatu), a następnie ponownie uruchom pobrany wcześniej plik z Windows PowerShell.

Obraz

Krok 5

Jeżeli wszystkie wymagane dodatki są już w systemie zainstalowane, zobaczysz standardowe okno kreatora instalacji. Kliknij Dalej i potwierdzaj kolejne etapy instalacji. Nie musisz zmieniać żadnych ustawień. Gdy instalacja się zakończy, dostęp do PowerShella będziesz miał z menu Start. Skróty do Windows PowerShell zostaną umieszczone w grupach Akcesoria oraz Windows PowerShell.

Obraz
Obraz

Pierwsze kroki z Windows PowerShell

Zakładamy, że zainstalowałeś już Windows PowerShell. W tym warsztacie dowiesz się, w jaki sposób uruchomić PowerShella, i wywołasz w nim pierwsze polecenie typu cmdlet. Warsztat opracowywaliśmy, bazując na wersji PowerShella zintegrowanej z systemem Windows 7 SP1, ale w analogiczny sposób posługujesz się tym narzędziem w innych wersjach Windows.

Krok 1

PowerShella możesz uruchomić na kilka sposobów. Rozwiń menu Start, następnie w polu wyszukiwania wpisz: PowerShell. W 64-bitowej wersji systemu Windows 7 (a także Windows Vista) zobaczysz cztery pozycje. W 32-bitowych wersjach Windows – dwie. Kliknij element o nazwie Windows PowerShell.

Obraz

Krok 2

Zobaczysz okno główne interpretera Windows PowerShell. Jeżeli kiedykolwiek wcześniej korzystałeś z wiersza polecenia cmd.exe lub interpretera command.com, zauważysz, że PowerShell wygląda dość podobnie. Również tu widzisz jedynie komunikaty tekstowe oraz mrugający kursor za charakterystycznym znakiem zachęty, który w przypadku PowerShella składa się ze znaków PS, aktualnie ustawionej ścieżki katalogowej (jest to folder domowy aktualnie zalogowanego w systemie użytkownika) i znaku większości >.

Obraz

Krok 3

Bardzo dużą zaletą Windows PowerShella jest to, że możesz w nim używać być może znanych ci już poleceń wiersza polecenia, a także nowych, wbudowanych w PowerShella poleceń tzw. cmdlet. Na przykład jednym z najbardziej znanych poleceń Windows jest polecenie dir, które powoduje wyświetlenie listy plików z aktualnego katalogu. To klasyczne polecenie wiersza polecenia, a także interpretera command.com działa również w PowerShell. Wpisz z klawiatury polecenie dir i wciśnij klawisz [Enter], a zobaczysz spis plików i podfolderów znajdujących się w aktualnie ustawionym folderze.

Obraz

Krok 4

Poleceniem typu cmdlet, czyli poleceniem wbudowanym w PowerShella i wykonującym analogiczną akcję do użytego właśnie klasycznego polecenia dir, jest Get-ChildItem, wpisz to polecenie i wciśnij [Enter], a przekonasz się, że wynik będzie taki sam.

Obraz

Krok 5

Kolejną zaletą PowerShella jest to, że rządzi nim obiektowa logika. Wyjaśnimy to na przykładzie polecenia Get-ChildItem. Polecenie cmdlet składa się z dwóch elementów. Polecenie get przekazuje informacje o obiekcie umieszczonym z prawej strony myślnika (tu: ChildItem). W pewnym stopniu polecenia cmdlet można porównać do języka naturalnego. Służą one do wydawania komputerowi poleceń w taki sposób, by każde polecenie zawierało czasownik i rzeczownik (działanie i obiekt).

Krok 1

PowerShell jest standardowo wyposażony w ponad 100 poleceń cmdlet, zatem warto wiedzieć, jakie to są polecenia i jak zdobyć o nich dodatkowe informacje. Aby wyświetlić listę wszystkich poleceń dostępnych w PowerShellu, wpisz polecenie Get-Command i wciśnij klawisz [Enter].

Krok 2

Otrzymasz długą listę poleceń różnego typu (przewiń listę do góry, do początku). W kolumnie (1) widoczny jest typ polecenia. Oprócz typu Cmdlet zobaczysz jeszcze typy Alias oraz Function. Aliasy są to najczęściej skrócone zapisy właściwych poleceń typu cmdlet (np. polecenie dir, które wpisywałeś wcześniej jest aliasem polecenia Get-ChildItem), w dalszej części dowiesz się, jak tworzyć takie aliasy samodzielnie. Polecenia typu Function wywołują funkcje systemowe (np. zmiana aktualnie ustawionego dysku, zmiana folderu itp.). Kolumna (2) zawiera właściwe polecenie, czyli uwagi jak je należy wpisywać, a kolumna (3) krótką definicję danego polecenia.

Obraz

Krok 3

Definicje poleceń widoczne na liście wywoływanej poleceniem Get-Command to zdecydowanie za mało, by wiedzieć, co dane polecenie wykonuje. PowerShell ma inne przydatne polecenie objaśniające znaczenie poszczególnych poleceń. Wpisz: Get-Help Get-Help i wciśnij [Enter]. Dwukrotne wprowadzenie Get-Help to nie błąd! W wyniku wykonania tego polecenia otrzymasz opis polecenia Get-Help.

Dokumentacja polecenia zwracana przez Get-Help składa się z kilku części:
NAME – nazwa polecenia, którego pomoc dotyczy
SYNOPSIS – krótki opis danego polecenia
SYNTAX – prawidłowa składnia danego polecenia
DESCRIPTION – dokładniejszy opis polecenia
RELATED LINKS – odnośniki do dodatkowych informacji i skojarzonych poleceń
REMARKS – dodatkowe uwagi i wskazówki.

Obraz

Krok 4

Zwróć uwagę na ostatnią sekcję zawierającą wskazówki – REMARKS. Znajdziesz tam trzy przykłady poleceń podobnych do tego, które wprowadziłeś w trzecim kroku, ale wzbogaconych o dodatkową opcję, dzięki której otrzymasz dodatkowe informacje.

Obraz

Podsumujmy:

  • Aby otrzymać ogólne informacje o danym poleceniu, wpisz Get-Help nazwa-polecenia i wciśnij [Enter].
  • Aby otrzymać przykłady zastosowań danego polecenia, wpisz Get-Help nazwa-polecenia -examples i wciśnij [Enter].
  • Aby otrzymać dokładniejsze informacje o danym poleceniu, wpisz Get-Help nazwa-polecenia -detailed i wciśnij [Enter] (w wyświetlonych informacjach pojawią sie również przykłady zastosowań, więc stosowanie tego polecenia eliminuje potrzebę stosowania wymienionych opcji -examples).
  • Jeżeli poszukujesz bardzo dokładnych, technicznych informacji o danym poleceniu, włącznie z przykładami, parametrami itp., wpisz Get-Help nazwa-polecenia -full i wciśnij [Enter].

Tworzenie wygodnych skrótów do standardowych poleceń

Alias to inaczej skrót, krótszy zapis jakiegoś polecenia. Dzięki aliasom możesz w wygodniejszy sposób korzystać z wbudowanych poleceń. Oprócz aliasów już wbudowanych w Windows PowerShell możesz tworzyć własne. Tym właśnie się zajmiemy, pokazując, jak utworzyć jednoznakowy alias do często wykorzystywanego polecenia Get-Help.

Krok 1

Uruchom Windows PowerShell. Zastanów się, jaki alias pasowałby do polecenia Get-Help? Mając na uwadze, że jest to polecenie wyświetlające pomoc dotyczącą innych poleceń, dobrymi propozycjami wydają się aliasy h (od słowa help) lub p (od słowa pomoc). Zanim jednak ustawisz któryś z tych aliasów dla polecenia Get-Help, najpierw zawsze sprawdź, czy nie istnieją już takie aliasy w Windows PowerShell. Wpisz polecenie get-alias |sort i wciśnij [Enter].

Krok 2

Zobaczysz posortowaną alfabetycznie listę istniejących już aliasów w Windows PowerShell. Łatwo możesz zobaczyć, że niestety literka h jest już zajęta jako alias polecenia Get-History. Nie ma jednak aliasu w postaci litery p, co oznacza, że możesz ją wykorzystać jako alias polecenia Get-Help.

Obraz
Obraz

Krok 3

Poleceniem, za którego pomocą możesz ustawić alias dla dowolnego polecenia cmdlet w Windows Powershell jest Set-Alias. Pamiętaj, że zawsze możesz się dowiedzieć więcej o tym poleceniu, wpisując Get-Help Set-Alias, tymczasem wpisz Set-Alias p Get-Help i wciśnij [Enter].

Krok 4

Pozornie nic się nie stanie, nie zobaczysz żadnego komunikatu potwierdzającego poprawność wykonanego polecenia, ale od tej pory zamiast Get-Help możesz wpisywać tylko literkę p – efekt będzie taki sam. Na przykład, aby dowiedzieć się więcej o poleceniu Set-Alias, wpisz p Set-Alias i wciśnij [Enter]. Zobaczysz stronę dokumentacji polecenia Set-Alias:

Obraz

Przykłady przydatnych poleceń w Windows PowerShell

Wiesz już, jak uruchomić PowerShell, jak wywołać standardowo wbudowane polecenia cmdlet, a także jak tworzyć aliasy dla istniejących poleceń. Ponieważ dostępnych poleceń jest sporo i nie wszystkie mają zastosowanie w komputerze domowym, proponujemy zestaw szczególnie przydatnych poleceń cmdlet i trików.

Krok 1

Windows PowerShell może cię wyręczyć we wpisywaniu długich poleceń cmdlet. Wystarczy, że podczas wpisywania polecenia wciśniesz klawisz [Tab]. Wypróbujmy to na konkretnym przykładzie.

Krok 2

Załóżmy, że chcesz wpisać polecenie Get-Command (lista wszystkich poleceń Windows PowerShell). Wpisz Get-Co i wciśnij [Tab], a reszta polecenia zostanie automatycznie uzupełniona

Krok 1

Za pomocą Windows PowerShell możesz łatwo namierzyć pamięciożerny proces w systemie. Wpisz polecenie get-process | where-object {$_.PM -gt 130MB} i wciśnij [Enter].

Krok 2

W powyższym poleceniu wydajesz komputerowi polecenie „pokaż wszystkie procesy, które na swoje wyłączne potrzeby (PM – Private Bytes Memory) zawładnęły pamięcią o rozmiarze co najmniej 130 MB”. W oknie Windows PowerShell zobaczysz listę procesów spełniających taki warunek. Na naszej przykładowej ilustracji jest to jeden proces Internet Explorera (iexplore). Nazwę procesu znajdziesz w ostatniej kolumnie ProcessName.

Obraz

Krok 1

Jak za pomocą Windows PowerShell wyświetlić listę uruchomionych w systemie usług? Wystarczy jedno polecenie. Wpisz: get-service | where-object {$_.Status -eq „Running”} i wciśnij [Enter].

Krok 2

W oknie Windows PowerShell zobaczysz listę wszystkich aktualnie działających usług w systemie, np.:

Obraz

Przydatne strony o Windows PowerShell

Microsoft Technet – Centrum Skryptów
http://technet.microsoft.com/pl-pl/library/hh134135.aspx

Windows PowerShell Blog
http://blogs.msdn.com/b/powershell

Publikacje książkowe na temat PowerShella

Obraz

Jesteś zainteresowany rozszerzeniem wiedzy na temat Windows PowerShell? Więcej się dowiesz dzięki następującym publikacjom książkowym i serwisom internetowym.

  • Microsoft Windows PowerShell – krok po kroku Książka ta umiejętnie dawkuje wiedzę: od podstaw aż po zaawansowane triki przydatne administratorom sieci. Publikacja nie jest nowa i jej treść dotyczy Windows PowerShell 1.0, ale większość treści w niej zawartych jest wciąż aktualna i łatwa do zaadaptowania do wersji 2.0. Cena: 85 zł Wydawnictwo: Microsoft Press/APN Promise, www.promise.pl
  • Windows PowerShell – podstawy Kolejna polskojęzyczna publikacja poświęcona Windows PowerShell. Zawiera bogatszy, ale też bardziej skomplikowany w odbiorze materiał niż poprzednia publikacja. Książka przydatna bardziej wyrobionym informatycznie czytelnikom. Cena: 65 zł Wydawnictwo: Helion, www.helion.pl

Wybrane dla Ciebie