На данный момент существуют две ветки 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
А что вы думаете по этому поводу?