Krótki wstęp do PowerShella

Autorzy: Michał Gajda


Windows, powershell, konsola, cmd, Cmdlet’ów, Cmdlet, moduły, przewodnik, WebAdministration, GroupPolicy, ActiveDirectory


PowerShell, dla laika może się wydawać skomplikowanym narzędziem wykorzystywanym do… No właśnie, do czego? Można przy jego pomocy zarządzać całym systemem operacyjnym, można dokonywać dowolnych operacji na bazach danych, można wreszcie programować proste aplikacje .NET, a przy obecnej polityce Microsoftu de facto można zarządzać prawie wszystkim. Czym więc jest PowerShell? Jest on uniwersalnym interfejsem skryptowym ułatwiającym nam pracę w IT.

Interfejs

Aby zaznajomić się z interfejsem uruchamiamy sobie okno PowerShella.

img1.jpg

Jest ono zbliżone do klasycznego CommandLine, niemniej jednak oprócz wizualnego odświeżenia posiada ono również kilka dodatkowych funkcjonalności jakich brakowało jego poprzednikowi, m.in. podpowiadanie treści [TAB], czy najważniejsze - budowa oraz działanie komend.

Wstęp do cmdlet'ów

Polecenia Powershellowe składają się w większości przypadków z dwu-członowych nazw. Pierwszy człon będący zazwyczaj czasownikiem (Get, Set, Add...) informuje nas o tym jaki typ operacji będzie wykonywany. Natomiast kolejny człon odpowiada już za to do czego ona ma dotyczyć. Odpowiednie dobieranie obu członów pozwala na łatwe i intuicyjne budowanie poleceń adekwatnych do sytuacji. Jednakże jak każda reguła ma swoje wyjątki tak i PowerShell je posiada, a należą do nich aliasy pozwalające na skrócenie pewnej części danej składni. Pełny wykaz dostępnych komend oraz aliasów możemy sprawdzić używając jednego z trzech najważniejszych poleceń, czyli Get-Command.

Posłużmy się jednak przykładem; znane wszystkim z Cmd polecenie Dir dostępne jest również w Powershellu. Jednakże w porównaniu do swojego poprzednika działa odrobinę inaczej. Tak naprawdę Dir jest aliasem do polecenia Get-ChildItem. Jak widzimy: Get - pobierz dane, czyli to, co chcemy zrobić, a ChildItem - czego ma dotyczyć polecenie. W naszym przypadku będzie się to tyczyć wylistowania elementów, a z racji iż nie podajemy dokładnie czego, to domyślnie wybrany zostanie katalog, w którym aktualnie przebywamy.

img2.jpg

Znaczącą różnicą w PowerShellu jest to, iż komendy nie są wykonywane poprzez zewnętrzne aplikacje jak było to w Cmd, lecz są kompilowane bezpośrednio poprzez PowerShella. Dzięki temu resultat jaki otrzymujemy nie jest już zwykłym tekstem. Wynik zapytania, mimo iż zaprezentowany jest również w formie tekstowej, tak naprawdę jest obiektem posiadającym swoje indywidualne właściwości oraz metody. Dzięki takiemu podejściu możemy dostać się do wartości danego atrybutu bez konieczności mozolnego parsowania tekstu, które de facto często nie przynosiło zadowalającego efektu. Rozwiązanie to pozwala również na wykorzystywanie pipeline'a do potokowego przetwarzania danych. Polega to po prostu na automatycznym przekazywania parametrów z jednego polecenia do drugiego, przyczym całość jest traktowana jako jedno polecenie.

Przykład:

Get-ChildItem | Where-Object {$_.Name -like "T*"} | Select-Object FullName, Length | Out-File P:\PS\dir.txt

Czyli wylistuj elementy aktywnego katalogu. Przefiltruj pod kątem nazwy, aby zaczynała się na literę T. Pokaż pełną ścieżkę do elementu oraz jego rozmiar i na koniec zapisz całość do pliku txt.

img3.jpg

Jeżeli zdaży się, iż nie mamy zbyt dużej wiedzy na temat danego obiektu możemy użyć drugiego ważnego polecenia jakim jest Get-Member. Służy ono do podpowiadania jakie dany obiekt posiada właściwości oraz jakich metod możemy na nim użyć.

img4.jpg

Ostatnią komendą z naszej trójcy jest Get-Help, czyli wywołanie swoistego manuala dotyczącego danej komendy. Sam manual pozwala na uzyskanie 4 zakresów informacji:

  • podstawowe informacje (Get-Help Get-Command) - Prosty opis oraz przedstawienie składni polecenia,
  • przykłady (Get-Help Get-Command -Examples) - Opis komendy wraz z przykładowymi zastosowaniami,
  • szczegółowe informacje (Get-Help Get-Command -Detailed) - Opis komendy oraz parametrów wraz z przykładami,
  • pełne informacje (Get-Help Get-Command -Full) - Pełna dokumentacja techniczna zawierająca opis składni, przedstawienie parametrów wraz z ich indywidualnymi właściwościami oraz przykłady zastosowania.

img5.jpg

Budowa modularna

Cmdlet'ów z podstawowego modułu Powershella jest ponad 200 i wystarczają do wykonywania podstawowych operacji związanych z pracą w systemie Windows. Zaliczyć możemy do nich m.in. operacje na plikach czy zarządzanie procesami i usługami.

Jak już wspomniałem na początku, obecna polityka Microsoftu związana z tworzenia nowych produktów - głównie serwerowych, uwzględnia dostarczenie dla każdego nowego produktu serii cmdlet'ów pozwalających na pełne zarządzanie technologią bez potrzeby wykorzystywania narzędzi graficznych.

Większość z takich modułów jest automatycznie dodawana do systemu zaraz po zaimplementowaniu danego rozwiązania, jak np. moduł ActiveDirectory oraz GroupPolicy po zainstalowaniu roli AD czy moduł WebAdministration po dodaniu roli IIS.

Zarządzanie aktualnie dostępnymi modułami odbywa się poprzez wykorzystanie cmdlet'ów z serii Module:

Get-Module –ListAvailable
Get-Module <Nazwa modułu>
Import-Module <Nazwa modułu>
Remove-Module <Nazwa modułu>

img6.jpg

Prostota budowy funkcji oraz całych modułów pozwala na tworzenie własnych rozwiązań w zależności od indywidualnych potrzeb każdego administratora. Dzięki takiemu podejściu w sieci możemy natrafić na wiele gotowych rozwiązań. Najpopularniejszymi miejscami gdzie można ich szukać są:

http://www.codeplex.com

http://code.msdn.microsoft.com

http://gallery.technet.microsoft.com

Nauka

Podczas nauki podstawowych zagadnień związanych z pracą w PowerShellu można wykorzystać kilka darmowych źródeł takich jak:

Przewodnik po Windows PowerShell

Mastering PowerShell

Windows PowerShell Getting Started Guide

Scripting with Windows PowerShell

Osobiście jednak sądzę, iż najlepszym źródłem wiedzy na początek są trzy najważniejsze komendy:

Get-Command, Get-Member, Get-Help

 

 

Liczba ocen: 18 | Średnia ocen: 3.79

Czytaj także

 

Skomentuj

Twój komentarz
Dodaj

Komentarze

Nasz Fanpage

Popularne treści

  • .NET  
  • 3D  
  • 8  
  • ActiveDirectory  
  • AJAX  
  • amazon web services  
  • Android  
  • Android Market  
  • AngularJS  
  • Animacja  
  • API  
  • aplikacje  
  • Aplikacje wielojęzyczne  
  • asembler  
  • ASHX  
  • ASP.NET  
  • ASP.NET MVC  
  • assembler  
  • Automated Installation Kit  
  • Azure  
  • bezpieczeństwo  
  • bing  
  • Blender  
  • C#  
  • certyfikat  
  • chmura  
  • cloud computing  
  • cmd  
  • Cmdlet  
  • Cmdlet’ów  
  • core  
  • CSS  
  • Cycles  
  • developer  
  • Entity Framework  
  • Expression Blend  
  • fitl  
  • google  
  • google app engine  
  • googlemaps  
  • GPU  
  • Grafika  
  • GroupPolicy  
  • hamachi  
  • hyperv  
  • hyper-v  
  • IaaS  
  • ImageX  
  • instalacja aplikacji  
  • interface  
  • interfejs  
  • Iron Speed  
  • java  
  • JavaScript  
  • jQuery  
  • Kinect  
  • Knockout  
  • kolokacja  
  • konsola  
  • LINQ  
  • LINQ to SQL  
  • Linux  
  • MakeCert  
  • maps  
  • microsoft  
  • mobile  
  • moduły  
  • MVC  
  • mySQL  
  • OpenSource  
  • openstreet  
  • openvpn  
  • PaaS  
  • partycja  
  • PHP  
  • pliki apk  
  • pon  
  • powershell  
  • preview  
  • programowanie  
  • przeglądarka  
  • przetwarzanie w chmurze  
  • przewodnik  
  • Qt  
  • RAD  
  • Rendering  
  • SaaS  
  • script  
  • SDK  
  • server  
  • serwer  
  • Skalowanie  
  • SQL  
  • Systemy operacyjne  
  • światłowody  
  • Światłowód  
  • Template  
  • ubuntu  
  • virtual  
  • Visual Studio  
  • vpn  
  • WAIK  
  • WCF  
  • WebAdministration  
  • WebApi  
  • Windows  
  • windows azure  
  • Windows PE  
  • Windows Phone  
  • WinFroms  
  • wirtualizacja  
  • WPF  
  • XAML  
  • zdalny  
  • zdjęcia  

VideoCasty

Komu polecasz tą stronę? (email)
Poleca (twoje imie/pseudonim)
Treść (opcjonalnie) Do Twojej treści zostanie dodany link polecanej strony
POLECAM