Найти в Дзене
about IT

PowerShell 7.0, что нового и как с этим жить

Полный список изменений находится всё там же Теперь это всё переехало на .NET Core 3.1 Список изменений: -UseWindowsPowerShell в Import-Module Список поддерживаемых Linux систем: Почитать про установку можно тут Теперь к интересному, что с этим всем можно делать. У меня при переходе на 7.0 сломались несколько скриптов, чинится всё не сложно (нужно смотреть где ломается и идти смотреть доку по входным данным, в моём случае проблемы были только с этим. Может понадобится вызов модулей без совместимости, выше описано как это делать). Если выполнить Invoke-Command на хосте где нет ps 7.0, будет использован windowsPowershell, обычно v.5.1 Но всегда можно из под него выполнить pwsh и получить версию 6+. Морозов Павел | vk | telegram

Полный список изменений находится всё там же

Теперь это всё переехало на .NET Core 3.1

Список изменений:

  • Параллелизация пайплайна с ForEach-Object-Parallel (теперь ForEach можно распараллелить добавив -Parrallel. Скрипт будет запускаться в рамках одного процесса, но в отдельных потоках. Вообще не факт, что вы получите прирост производительности).
  • Новые операторы:
  1. Ternary: a? b: c
  2. Pipeline chain: || and &&
  3. Null coalescing: ?? and ??=
  • Ошибки теперь показывает более приятно, добавили командлет Get-Error (по дефолту показывает последнюю ошибку, с помощью ключа -Newest можно вывести n ошибок).
  • Можно не совместимые модули добавлять через
-UseWindowsPowerShell в Import-Module

  • Теперь ps будет сам сообщать о выходе новых версий
  • Возможность вызывать ресурсы DSC из PowerShell 7

Список поддерживаемых Linux систем:

  • Ubuntu 16.04
  • Ubuntu 18.04
  • Debian 8
  • Debian 9
  • Debian 10
  • Alpine 3.9 и 3.10
  • CentOS 7
  • Red Hat Enterprise Linux (RHEL) 7
  • Fedora 28
  • Fedora 29
  • Fedora 30
  • openSUSE 42.3
  • openSUSE Leap 15
  • Ubuntu 18.10
  • Ubuntu 19.04
  • Arch Linux
  • Kali
  • Raspbian

Почитать про установку можно тут

Теперь к интересному, что с этим всем можно делать.

У меня при переходе на 7.0 сломались несколько скриптов, чинится всё не сложно (нужно смотреть где ломается и идти смотреть доку по входным данным, в моём случае проблемы были только с этим. Может понадобится вызов модулей без совместимости, выше описано как это делать).

Если выполнить Invoke-Command на хосте где нет ps 7.0, будет использован windowsPowershell, обычно v.5.1 Но всегда можно из под него выполнить pwsh и получить версию 6+.

проверка версии через Invoke-Command на пк, где установлен ps v.7.0
проверка версии через Invoke-Command на пк, где установлен ps v.7.0

Морозов Павел | vk | telegram