Windows PowerShell jest integralną częścią systemu operacyjnego Windows. Jest to powłoka wiersza poleceń i język skryptowy używany do automatyzacji czasochłonnych, powtarzalnych zadań, tworzenia niestandardowych narzędzi do zarządzania oraz tworzenia, testowania i wdrażania rozwiązań różnych innych problemów.

Domyślna wersja programu PowerShell, która jest wstępnie spakowana w systemie operacyjnym Windows, to PowerShell 5.1 lub po prostu Windows PowerShell. Ale skoro PowerShell 7 jest już wydany i stabilny, czy nie ma większego sensu, aby system operacyjny Windows używał najnowszej wersji PowerShell? Jakie korzyści i tak zapewnia PowerShell 7? I czy warto aktualizować? Porozmawiajmy o tym!

Co to jest PowerShell 7?

PowerShell 7 to najnowsza wersja programu PowerShell w wersji LTS. Ta wersja programu PowerShell jest rozwijana przy użyciu nowszej platformy .NET Core, która umożliwia kilka głównych aktualizacji przydatnych dla zaawansowanych użytkowników systemu Windows.

PowerShell 7 jest zarejestrowany i licencjonowany na podstawie licencji MIT. To jest teraz

instagram viewer
oprogramowanie open-source, gdzie ludzie mogą swobodnie przeglądać, modyfikować i rozpowszechniać własną kopię kodu źródłowego oprogramowania. Deweloperzy mogą również współtworzyć oficjalne wydania programu PowerShell, dołączając Oficjalna strona PowerShell w GitHub.

Dzięki wsparciu społeczności ta wersja programu PowerShell jest teraz wieloplatformowa! Oznacza to, że można go teraz zainstalować i używać w systemach Windows, macOS i Linux. Oto lista obsługiwanych systemów operacyjnych x64:

  • Okna 8.1, 10, 11
  • Windows Server 2012, 2012 R2, 2016 i 2019
  • macOS 10.13+
  • Red Hat Enterprise Linux (RHEL) / CentOS 7
  • Fedora 30+
  • Debiana 9
  • Ubuntu LTS 16.04+

Alpine Linux 3.8+ PowerShell 7 jest również obsługiwany w różnych dystrybucjach ARM32 i ARM64 Debian, Ubuntu i ARM64 Alpine Linux. Dla zainteresowanych dostępne są również nieobsługiwane pakiety dla Arch i Kali Linux.

Jakie są nowe funkcje zawarte w PowerShell 7?

Źródło obrazu: Windows/Nierozpryskiwany

Oprócz tego, że jest wieloplatformowy i open source, PowerShell 7 ma wiele innych nowych funkcji, które jeszcze bardziej zwiększają produktywność. Oto kilka z bardziej znaczących:

1. Ulepszona kompatybilność wsteczna

Z różnicą w ramach, wersje Windows PowerShell i PowerShell korzystające z platformy .NET Core będą miały niezgodności. Aby ułatwić ludziom przejście, PowerShell 7 integruje teraz moduł WindowsCompatibility. Ten moduł został zaprojektowany, aby umożliwić moduły Windows PowerShell i wiele innych popularne polecenia CMD do pracy w PowerShell 7.

2. Równoległość potoku z obiektem ForEach

PowerShell 7 ma teraz parametr Parallel. W programie Windows PowerShell każdy obiekt przesyłany potokowo za pomocą polecenia cmdlet ForEach-Object będzie wykonywany pojedynczo. Ale dzięki nowemu parametrowi Parallel wszystkie obiekty potokowe są teraz wykonywane jednocześnie. To drastycznie poprawia wydajność, co pozwala zaoszczędzić czas.

3. Operatory trójskładnikowe

Warunki warunkowe programu Windows PowerShell są wykonywane za pomocą instrukcji if-else. PowerShell 7 czyni to jeszcze prostszym, wprowadzając operatory trójskładnikowe, które są zasadniczo uproszczonymi wersjami instrukcji if-else za pomocą „?” i „:” w składni. Ta funkcja pozwala na szybsze i czystsze pisanie skryptów.

4. Operatorzy łańcucha rurociągów

Operatory potoków są ważną funkcją programu Windows PowerShell. Umożliwia tworzenie złożonych wyrażeń poprzez pobieranie danych wyjściowych polecenia cmdlet i używanie go w innym poleceniu cmdlet. Jest to jednak ograniczone, ponieważ program Windows PowerShell nie może przetwarzać wyrażeń warunkowych przy użyciu zwykłych operatorów potoków.

PowerShell 7 rozwiązuje ten problem, wprowadzając operatory łańcucha potoków, którymi są „&&” i „||”. Ten nowy operator potoku umożliwia programowi PowerShell wykonywanie poleceń z wyrażeniami warunkowymi.

Operator && służy do wykonywania polecenia potoku po prawej stronie tylko wtedy, gdy polecenie przed operatorem zakończy się pomyślnie. Podczas gdy operator || wykona polecenie potoku po prawej stronie tylko wtedy, gdy polecenie przed operatorem nie powiedzie się.

Dlaczego PowerShell 7 nie jest domyślny w systemie Windows?

Źródło zdjęcia: Mike Schinkel/Flickr

PowerShell 7 to wieloplatformowe oprogramowanie o otwartym kodzie źródłowym, które zapewnia funkcje, które mogą drastycznie poprawić wydajność i szybkość skryptów. Dlaczego więc Microsoft nie ustawia go jako domyślnego programu PowerShell w systemie Windows?

Obecny PowerShell, który jest preinstalowany z nowszymi systemami Windows, to PowerShell 5.1. To jest ostatnia wersja programu PowerShell korzystająca z platformy .NET. Chociaż prawdą jest, że jego kolejne wersje zapewniają lepsze funkcje, Windows PowerShell nadal ma jedną zaletę, której nie ma nowsza wersja PowerShell — pełna kompatybilność wsteczna.

Pierwszy PowerShell został wydany 14 listopada 2006 roku. To było, gdy Windows Vista i XP były nadal najnowszymi systemami operacyjnymi Windows. Według badania z enlyft, w samych Stanach Zjednoczonych ponad 46 000 firm nadal korzysta z systemu Windows XP. Firmy te po prostu nie mogą dokonać aktualizacji do najnowszej wersji PowerShell, ponieważ spowodowałoby to mnóstwo problemów z niekompatybilnością wsteczną, nawet w przypadku zintegrowanego modułu WindowsCompatibility programu PowerShell 7.

Dla dużych firm i różnych infrastruktur krytycznych (bankomaty, dostawcy energii, koleje, szpitale itp.) opóźnianie tygodniami lub miesiącami tylko po to, aby odbudować, przetestować i wdrożyć skrypty, które już działały z PowerShell 5.1, po prostu nie jest opcja. Nieważne wszystkie błędy, które mogą pojawić się podczas rzeczywistych godzin pracy.

Ponieważ PowerShell 5.1 jest najnowszym programem PowerShell zbudowanym na. NET, gwarantuje współpracę ze wszystkimi poprzednimi wersjami programu PowerShell, nawet z wersją wydaną w 2006 roku.

Czy powinieneś uaktualnić do PowerShell 7?

PowerShell 7 zapewnia wiele przydatnych aktualizacji, które sprawiają, że interfejs wiersza poleceń i skrypty są łatwiejsze, szybsze i wygodniejsze dzięki obsłudze wielu platform. W przeciwieństwie do tego, Windows PowerShell zapewnia pełną kompatybilność wsteczną ze wszystkimi starszymi PowerShell przed PowerShell 6. Czy powinieneś nadal używać Windows PowerShell, czy uaktualnić do nowszej wersji PowerShell 7?

Dobrą rzeczą w PowerShell 7 jest to, że został zaprojektowany do współistnienia z Windows PowerShell 5.1. Oprócz zintegrowanego modułu WindowsCompatibility, PowerShell 7 zapewnia również oddzielną ścieżkę instalacji, nazwę pliku wykonywalnego, PSModulePath i dzienniki zdarzeń, aby upewnić się, że nie koliduje z już zainstalowanym systemem Windows PowerShell.

Tak więc dla zdecydowanej większości osób, które chcą wypróbować nowe funkcje programu PowerShell 7, z pewnością mogą to zrobić, zachowując domyślny program Windows PowerShell. Jeśli jesteś ciekawy, czy nowszy PowerShell jest dla Ciebie, zdecydowanie powinieneś wypróbować nowszy PowerShell.

Chociaż PowerShell 7 zapewnia dobrą kompatybilność wsteczną, zawsze będą występować pewne rozbieżności ze względu na różnice w ramach. Jeśli pracujesz w firmie lub organizacji, która w dużej mierze opiera się na niestandardowych narzędziach i programach utworzonych z Windows PowerShell, migracja systemu firmowego do PowerShell 7 może nie być dobrym pomysłem.

PowerShell 7 dostarczył wiele aktualizacji, ale także upuścił sporo starszych modułów i poleceń cmdlet. Jeśli jesteś osobą, która jest już zadowolona z domyślnego programu PowerShell, to naprawdę nie ma powodu do migracji, zwłaszcza jeśli nie masz czasu na czytanie dokumentacji.

PowerShell 7 przyspiesza pisanie skryptów

PowerShell 7 to jedna z najnowszych stabilnych wersji programu PowerShell z obsługą długoterminową (LTS). Zapewnia szybszy i łatwiejszy sposób korzystania z PowerShell, nawet jeśli używasz innych systemów operacyjnych, takich jak macOS lub Linux. Chociaż przeczytanie dokumentacji może zająć trochę czasu, ostatecznie zaoszczędzisz więcej czasu, gdy nauczysz się korzystać z nowych aktualizacji.