Вышла следующая основная версия PowerShell, и в нее внесены некоторые существенные изменения. Седьмая версия включает такие функции, как параллельное выполнение, импорт модулей для удаленного выполнения, новые операторы и многое другое. В этом посте мы рассмотрим все новые функции на PowerShell 7.0.
Изменения в каталоге PowerShell
Когда вы устанавливаете PowerShell 7, он устанавливается в новый каталог и запускается вместе с PowerShell 5.1. Если вы обновляетесь с PowerShell Core 6.x, то он перезапишет каталог PowerShell 6 и удалит все ненужные файлы. Вот список каталогов, которые вам следует знать:
PowerShell 7 установлен в-
% programfiles% \ PowerShell \ 7
В % programfiles% \ PowerShell \ 7 папка добавлена в $ env: ПУТЬ
Пакеты установщика PowerShell 7 обновляют предыдущие версии PowerShell Core 6.Икс:
PowerShell Core 6.x в Windows:
% programfiles% \ PowerShell \ 6
заменяется на
% programfiles% \ PowerShell \ 7
Linux:
/ opt / microsoft / powershell / 6
заменяется на
/ opt / microsoft / powershell / 7
macOS:
/ USR / локальные / Майкрософт / PowerShell / 6
заменяется на
/ usr / местный / microsoft / powershell / 7
Новые возможности PowerShell 7
Я попытался кратко объяснить каждую из этих функций и рассказать, как она поможет пользователям PowerShell. Однако не забудьте прочитать более подробную информацию на официальной странице Microsoft.
- Распараллеливание конвейера
- Новые операторы
- ConciseView и Get-Ошибка командлет
- Автоматические уведомления о новых версиях
- Вызов ресурсов DSC непосредственно из PowerShell 7
- Уровень совместимости
Всегда проверяйте переменную среды перед тестированием реальных кодов.
1] Распараллеливание конвейера
Теперь вы можете выполнять или обрабатывать объекты параллельно вместо метода последовательности при использовании ForEach-Object -Parallel. В нашей публикации об удалении WIM этот метод может отключить три образа WIM чуть менее чем за 10 секунд вместо почти 25 секунд при последовательном запуске. Вот пример кода для него:
Get-WindowsImage -Mounted | foreach -Parallel Measure-Command Dismount-WindowsImage -Discard -Path $ _.Дорожка
2] Новые операторы
Есть три новых оператора-Тернарный оператор: a ? b: c, Операторы цепочки конвейеров: || и && и условные операторы Null: ?? а также ??знак равно. Они ведут себя как ведет себя как упрощенный оператор if-else. Они упрощают написание кода вместо постоянного использования цикла If-else.
3] ConciseView и командлет Get-Error
ConciseView - это выбираемое пользователем представление, которое включено в качестве представления по умолчанию в PowerShell 7. Если ошибка не в сценарии, вы получите однострочную ошибку. Однако, если это из сценария или есть ошибка синтаксического анализа, вы получите многострочное сообщение об ошибке и указатель, показывающий, в какой строке произошла ошибка.
Тогда у вас есть новый командлет Get-Ошибка это может помочь вам при желании получить подробное представление об ошибке. Он может отображать полную информацию, включая внутренние исключения, последней произошедшей ошибки.
$ Error | Get-Error Get-Error -Newest 3 # Отображает последние три ошибки, возникшие в сеансе
4] Автоматические уведомления о новых версиях
Начиная с PowerShell 7, система будет проверять наличие обновлений один раз в день и будет уведомлять о новой версии, если она доступна. Информация отображается только в начале последующих сеансов. Доступны три флага для обновления PowerShell
- По умолчанию Выпуски GA, Preview и RC
- Выключенный отключает функцию уведомления об обновлении
- LTS уведомляет только об обновлениях выпусков GA с долгосрочным обслуживанием (LTS)
Если вы хотите отключить уведомления об обновлениях в PowerShell 7, выполните эту команду в окне PowerShell.
$ Env: POWERSHELL_UPDATECHECK = 'Выкл.'
5] Вызов ресурсов DSC непосредственно из PowerShell 7
Командлет Invoke-DscResource запускает метод указанного ресурса PowerShell Desired State Configuration (DSC). Это экспериментальная функция.
С помощью этого командлета продукты управления конфигурацией могут управлять Windows или Linux с помощью ресурсов DSC. Этот командлет также включает отладку ресурсов, когда ядро DSC работает с включенной отладкой.
6] Уровень совместимости
Он позволяет пользователям PowerShell импортировать модули в неявном сеансе Windows PowerShell. Используя это, вы сможете выполнять настоящую команду в качестве сеанса на удаленном компьютере и возвращать результаты в локальный сеанс. Теперь, когда он поддерживает импорт модулей, вы можете запускать эти модули на удаленных компьютерах.
PowerShell - это программное обеспечение с открытым исходным кодом, доступное также для Linux и macOS. Приятно видеть так много новых функций в PowerShell 7, и мы надеемся, что он будет расти. Вы можете узнать больше об этом в Microsoft.