PowerShell 7.0 wreszcie w wersji stabilnej. Innowacje wrócą do Windows?
Po dziewięciu miesiącach prac, zespół PowerShell Core wydał na portalu GitHub finalną wersję 7.0 swojego środowiska skryptowego. PowerShell 7 to wyczekiwana przez wielu administratorów i wdrożeniowców wersja oparta o .NET Core 3.1. Wyczekiwana, ponieważ nowy .NET oznacza rozwiązanie wielu problemów ze zgodnością wprowadzonych przez rewolucję z poprzedniej wersji. Chaotyczne uśmiercenie .NET Framework zaczyna powoli przynosić owoce. Z akcentem na "powoli".
05.03.2020 08:48
Dziennik zmian względem ostatniego kandydata do wydania (RC3) jest raczej skromny. Ale lista usprawnień (tym takich zrywających zgodność z 6.x) dla wersji 7.0 to już olbrzymia lektura. Chodzi w niej nie tylko o nowości takie, jak "New-PSBreakpoint", w ciekawy sposób rozbudowujące język skryptowy. Głównym osiągnięciem serii 7.x ma być przywrócenie szeregu API, które wypadły z PowerShella po jego przejściu na .NET Core w wersji 6.0.
Lepsze (niekompatybilnym) wrogiem dobrego
.NET Core był dla PowerShella jednocześnie zbawieniem i karą. Zbawieniem, bo dzięki temu stał się prawdziwie wieloplatformowy. A karą, ponieważ pierwsze wersje .NET Core nie mogły się mierzyć z pełnoprawnym .NET Framework. Wielu funkcji brakowało, niektóre były obecne, ale niewydajne, a inne działały tylko na niektórych systemach. Obecnie stan ten uległ wyraźnej poprawie, a w przyszłości będzie jeszcze lepiej.
W ten sposób, poza usprawnieniami w języku (ternary operators!) oraz środowisku uruchomieniowym (Get-Error i znacznie ułatwione dokopywanie się do błędów), do PowerShella wróciło wiele elementów z wersji 5.1, jak możliwość dogadania się z Desired State Configuration. Biorąc pod uwagę plany zintegrowania .NET 5 z Windows, PowerShell 7 ma szansę zagościć w systemie na prawach dotychczasowego Windows PowerShell 5.1, zastępując go.
Windows na tym skorzysta
Uczyniłoby to platformę Windows dobrym środowiskiem wdrożeniowca, bez konieczności polegania na Visual Studio. Zamiast tego możliwe byłoby "uniksowe" wykorzystanie wielu małych, współpracujących ze sobą narzędzi (cmdletów). W kwestii Linuksa, PowerShell 7 naturalnie w nim działa, ale na takie wygody, jak odpowiednik windowsowego Get-Service dla systemd raczej nie ma co liczyć. Zresztą pisaliśmy już o tym. Przenośność PowerShella ma spełniać inne zadania, niż zastępstwo dla powłoki Bash. Są nimi takie czynności związane z obsługą Azure, Hyper-V i VMWare.
PowerShell 7 jest dostępny do pobrania dla Windows 7 i nowszych, Red Hata (wraz z CentOS i Fedorą), Debiana, Ubuntu i Alpine. Pozostaje czekać, aż pojawi się w głównej wersji Windows 10. Ma to nastąpić w przyszłym roku.
Interpreter PowerShell Core jest dostępny do pobrania z naszej bazy oprogramowania. Nie pomylcie go z klasycznym PowerShellem, w wersji 5.1!