Главная

Wednesday, 16 February 2022

Подключаем PowerShell 7.0 в Windows.

Всем привет.

На данный момент существуют две ветки PowerShell: старая версия Windows PowerShell (максимальная версия 5.1, которая более не развивается) и новая платформа PowerShell Core (сейчас доступна версия 7.2.1). Несмотря на то, что нумерация версий PowerShell продолжается с 5.1 (6.0, 6.1, 7.0 и т.д.), это две разные платформы. Которые вполне могут работать вместе. Но об этом чуть ниже.

PowerShell 7.0 доступен для следующих ОС:

  • Windows 7, 8.1 и 10;
  • Windows Server 2008 R2, 2012, 2012 R2, 2016 и 2019;
  • macOS 10.13 и новее;
  • Red Hat Enterprise Linux (RHEL) / CentOS 7 и новее;
  • Fedora 29 и новее;
  • Debian 9 и новее;
  • Ubuntu 16.04 и новее;
  • openSUSE 15 и новее;
  • Alpine Linux 3.8 и новее.

Версия PowerShell 7 имеет следующие возможности:

  • Поддержка распараллеливания каналов (pipeline) при помощи конструкции «ForEach-Object -Parallel»;
  • Оператор условного присвоения «a ? b : c»;
  • Операторы условного запуска потоков «||» и «&&» (например, cmd1 && cmd2, вторая команда будет выполнена только при успешном выполнении первой);
  • Логические операторы «??» и «??=», которые возвращают правый операнд, если левый операнд имеет значение NULL (например, a = b ?? «default string» если b равен null, оператор вернёт стоку со значением по умолчанию);
  • Улучшенная система динамического просмотра ошибок (Get-Error cmd);
  • Прослойка для совместимости с модулями для Windows PowerShell;
  • Автоматический вывод уведомления о появлении новой версии;
  • Возможность вызова ресурсов DSC (Desired State Configuration) напрямую из PowerShell.

Скачивать дистрибутивы рекомендуется на GitHub.

Для пользователей Windows компания Microsoft приготовила MSI-пакеты соответствующих разрядностей. Установка выполняется по принципу Next-Next, ничего трудного.

Альтернативой графическому способу установки является установка через командную строку. Ниже пример команды для установки PowerShell 7.0 в 64-битной ОС Windows со всеми включенными параметрами установки:

msiexec.exe /package PowerShell-7.0.0-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1

ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL - добавить пункт «Открыть в PowerShell» в контекстное меню проводника;

ENABLE_PSREMOTING - включить удалённое взаимодействие PowerShell во время установки;

REGISTER_MANIFEST - регистрировать манифест ведения журнала событий Windows.

В зависимости от версии PowerShell и разрядности операционной системы имя установочного файла может отличаться. Соответственно, в команде надо указать имя того файла, который был предварительно скачан. Есть и другие способы установки. 

Напомню что PowerShell 7.0 не апгрейдит PowerShell 5.1, а тихо становится рядом в C:\Program Files\PowerShell\7\. Т.е. теперь у вас будет две версии полноценно работающих PowerShell. Но лучше оговориться - PowerShell 7.0 не имеет своей ISE. В Microsoft решили ее далее не развивать, на замену предлагают пользоваться Visual Studio.

Но не все так печально для фанатов ISE, есть хитрый выход из положения. Запускаем Powershell 7 и проверяем активные профили удаленного подключения:

Get-PSSessionConfiguration

Если в вашем выводе пусто, то выполняем команду:

Enable-PSRemoting

Далее в Powershell ISE стартуем удаленную сессию к своему же хосту:

Enter-PSSession -ConfigurationName powershell.7 -ComputerName localhost



Есть? Отлично, теперь можно использовать всю новизну Powershell 7 в ISE.

Удачи.


No comments:

Post a Comment

А что вы думаете по этому поводу?