Windows PowerShell kiedyś, dziś i jego „jutro”…

Pierwszy raz zetknąłem się z Windows PowerShell w konsoli Exchange Managment Shell. Było to jakies 7 lat. To już siedem lat z Windows PowerShell. Jeszcze jakiś czas temu PowerShell był głównie używany przez sympatyków i entuzjastów. Dzisiaj coraz częściej od kandydatów oczekuję się jego znajomość. Szczerze mówiąc, ja nie wyobrażam sobie pracy bez tego rozwiązania. Postrzegam PowerShell, jako szwajcarski scyzoryk, który jestem wstanie dostosować do potrzeby chwili. Potencjał, jaki w nim tkwi jest ogromny.

Ale czym jest PowerShell?

Jest interpreterem poleceń obsługującym język skryptowy. Jego charakterystyczną cechą jest zwracanie wyników, jako obiekty określonego typu. PowerShell jest oparty na .NET Frameworku.  Dostępny w systemach operacyjnych zarówno desktopowych jak i serwerowych z rodziny Windows.

Jeszcze dobry rok temu można byłby na tym zakończyć, ale nie dzisiaj. PowerShell, zgodnie z obecną polityką Microsoft chce być multiplatformowy. Chłopaki z Redmond niczym bohaterowie Pinki i Mózg chcą zdobyć cały świat 🙂 Czy to coś złego? Chyba nie, choć powstało z tego małe zamieszanie z wersjami, edycjami. Tak, więc w tej chwili mamy:

PowerShell 1.0 – 5.1
oparty na .NET Framework (FullCLR), tak jak wspomniałem wyżej działa w pełnych wersjach systemu operacyjnego Windows. Od wersji 1.0 do wersji obecnej PowerShell, wprowadzono:

  • mega dużo nowych poleceń i modułów (zobacz mój stary wpis, Windows Powershell 3 ? co nowego?)
  • nowe wbudowane zmienne
  • nowe operatory takie jak -split, -join
  • Tab Completion
  • Integrated Scripting Environment
  • Intellisense
  • debuggowanie skryptów
  • uproszczenie składni (Windows Powershell 3 ? Simplified Language Syntax)
  • obsługa błędów poprzez Try-Catch-Finally
  • Cmdlet Discovery i Auto Loading Module
  • Zdalny import modułów
  • Windows PowerShell Web Access
  • Workflows
  • Desired State Configuration
  • i dużo, dużo więcej

PowerShell 5.0/5.1

PowerShell Core 5.0 – 5.1
oparty na .NET Core, dostępna dla takich systemów jak Nano Server i Windows IoT. W dużej mierze po prostu PowerShell, ograniczony charakterem systemu Nano Server, co powoduję, że pewne funkcjonalności są niedostępne. Pełna list różnic dostępna tutaj.

PowerShell Core 6.0
oparty na .Net Core (CoreCLR), edycja multiplatformowa, dostępna na Windows, macOS oraz na takie edycje Linux jak Ubuntu, Red Hat, Debian, CentOS.

PowerShell Core 6.0

Podsumowanie

Myślę, że jest to okres przejściowy, który doprowadzi do tego, że za jakiś czas będziemy mówić o PowerShell tylko w kontekście interpretera opartego o .NET Core. Wskazuje o tym chociażby wstrzymanie rozwoju nad PowerShell na tzw. FullCLR i skupienie się nad zapewnieniu kompatybilności wstecz dla PowerShell Core 6.0.

Z pasją poświęcam czas na zdobywanie wiedzy w zakresie szeroko rozumianej Data Platform. Zachwycony językiem skryptowym Windows PowerShell. Swoją wiedzę, doświadczenia i spostrzeżenia opisuję na blogu.

Leave a Reply

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *