Windows PowerShell является неотъемлемой частью операционной системы Windows. Это оболочка командной строки и язык сценариев, используемые для автоматизации повторяющихся задач, требующих много времени, создания настраиваемых инструментов управления, а также создания, тестирования и развертывания решений для различных других проблем.

Версия PowerShell по умолчанию, предварительно упакованная в операционную систему Windows, — это PowerShell 5.1 или просто Windows PowerShell. Но с уже выпущенной и стабильной версией PowerShell 7, не имеет ли ОС Windows больше смысла использовать последнюю версию PowerShell? Какие преимущества дает PowerShell 7? И стоит ли обновляться? Давай поговорим об этом!

Что такое PowerShell 7?

PowerShell 7 — это последняя LTS-версия PowerShell. Эта версия PowerShell разработана с использованием более новой платформы .NET Core, которая поддерживает несколько основных обновлений, которые опытные пользователи Windows сочтут полезными.

PowerShell 7 зарегистрирован и распространяется под лицензией MIT. Сейчас

instagram viewer
программное обеспечение с открытым исходным кодом, где люди могут свободно просматривать, изменять и распространять собственные копии исходного кода программного обеспечения. Разработчики также могут внести свой вклад в официальные выпуски PowerShell, присоединившись к Официальная страница PowerShell на GitHub.

Благодаря поддержке сообщества эта версия PowerShell теперь является кроссплатформенной! Это означает, что теперь его можно установить и использовать в Windows, macOS и Linux. Вот список поддерживаемых операционных систем x64:

  • Виндовс 8.1, 10, 11
  • Windows Server 2012, 2012 R2, 2016 и 2019.
  • macOS 10.13+
  • Red Hat Enterprise Linux (RHEL) / CentOS 7
  • Федора 30+
  • Дебиан 9
  • Убунту ЛТС 16.04+

Alpine Linux 3.8+ PowerShell 7 также поддерживается в различных дистрибутивах ARM32 и ARM64 Debian, Ubuntu и ARM64 Alpine Linux. Для тех, кому интересно, есть также неподдерживаемые пакеты для Arch и Kali Linux.

Какие новые функции включены в PowerShell 7?

Кредит изображения: Windows/Скрыть

Помимо кроссплатформенности и открытого исходного кода, PowerShell 7 имеет множество других новых функций, которые еще больше повышают производительность. Вот некоторые из наиболее заметных из них:

1. Улучшенная обратная совместимость

Из-за различий в платформах версии Windows PowerShell и PowerShell, использующие платформу .NET Core, будут несовместимы. Чтобы облегчить людям переход, в PowerShell 7 теперь интегрирован модуль WindowsCompatibility. Этот модуль предназначен для использования модулей Windows PowerShell и многих популярные команды CMD для работы в PowerShell 7.

2. Распараллеливание конвейера с помощью ForEach-Object

PowerShell 7 теперь имеет параметр Parallel. В Windows PowerShell каждый передаваемый объект с помощью командлета ForEach-Object будет выполняться по одному. Но с новым параметром Parallel все передаваемые объекты теперь выполняются одновременно. Это значительно повышает производительность, что может сэкономить ваше время.

3. Тернарные операторы

Условные выражения Windows PowerShell выполняются с помощью операторов if-else. PowerShell 7 делает это еще проще, вводя тернарные операторы, которые в основном представляют собой упрощенные версии операторов if-else с использованием «?» и «:» в синтаксисе. Эта функция позволяет быстрее и чище писать сценарии.

4. Операторы цепочки трубопроводов

Операторы конвейера — важная функция Windows PowerShell. Он позволяет создавать сложные выражения, используя выходные данные командлета и используя их в другом командлете. Однако это ограничено, поскольку Windows PowerShell не может обрабатывать условные выражения с помощью обычных операторов конвейера.

PowerShell 7 устраняет эту проблему, вводя операторы цепочки конвейеров, такие как «&&» и «||». Этот новый оператор конвейера позволяет PowerShell выполнять команды с условными выражениями.

Оператор && используется для выполнения команды правого конвейера только в том случае, если команда перед оператором выполнена успешно. В то время как оператор || будет выполнять правую конвейерную команду только в том случае, если команда перед оператором не удалась.

Почему PowerShell 7 не используется по умолчанию в Windows?

Кредит изображения: Майк Шинкель/Flickr

PowerShell 7 — это кроссплатформенное программное обеспечение с открытым исходным кодом, которое предоставляет функции, которые могут значительно повысить производительность и скорость выполнения сценариев. Так почему же Microsoft не делает его PowerShell по умолчанию в Windows?

Текущая оболочка PowerShell, предустановленная в новых системах Windows, — это PowerShell 5.1. Это последняя версия PowerShell, использующая платформу .NET. Несмотря на то, что его последующие версии предоставляют лучшие возможности, Windows PowerShell по-прежнему имеет одно преимущество, которого нет у новой оболочки PowerShell, — полную обратную совместимость.

Первая оболочка PowerShell была выпущена 14 ноября 2006 г. Это было, когда Windows Vista и XP все еще были последними ОС Windows. В соответствии с исследование от enlyft, только в Соединенных Штатах более 46 000 компаний все еще используют Windows XP. Эти компании просто не могут перейти на последнюю версию PowerShell, поскольку это вызовет массу проблем с обратной несовместимостью даже с интегрированным в PowerShell 7 модулем WindowsCompatibility.

Для крупных компаний и различных объектов критической инфраструктуры (банкоматы, поставщики электроэнергии, железные дороги, больницы и т. д.), обслуживание в течение нескольких недель или месяцев только для перестроения, тестирования и развертывания сценариев, которые уже работали с PowerShell 5.1, просто не вариант. Не обращайте внимания на все ошибки, которые могут появиться в течение реальных часов работы.

Поскольку PowerShell 5.1 — это последняя версия PowerShell, построенная на платформе. NET framework, он гарантированно будет работать со всеми предыдущими версиями PowerShell, даже с выпущенной в 2006 году.

Стоит ли переходить на PowerShell 7?

PowerShell 7 содержит множество полезных обновлений, которые делают взаимодействие с командной строкой и создание сценариев проще, быстрее и удобнее благодаря кроссплатформенной поддержке. Напротив, Windows PowerShell обеспечивает полную обратную совместимость со всеми устаревшими версиями PowerShell до PowerShell 6. Итак, следует ли продолжать использовать Windows PowerShell или перейти на более новую версию PowerShell 7?

Преимущество PowerShell 7 в том, что он был разработан для сосуществования с Windows PowerShell 5.1. Помимо встроенного модуля WindowsCompatibility, PowerShell 7 также предоставляет отдельный путь установки, имя исполняемого файла, PSModulePath и журналы событий, чтобы убедиться, что он не мешает уже установленной Windows PowerShell.

Таким образом, для подавляющего большинства людей, желающих попробовать новые функции PowerShell 7, они, безусловно, могут сделать это, сохранив Windows PowerShell по умолчанию. Если вам интересно, подходит ли вам более новый PowerShell, вам обязательно стоит попробовать новый PowerShell.

Хотя PowerShell 7 обеспечивает хорошую обратную совместимость, всегда будут некоторые несоответствия из-за различий в инфраструктуре. Если вы работаете в компании или организации, которая в значительной степени зависит от пользовательских инструментов и программ, созданных на основе Windows PowerShell, то переход системы компании на PowerShell 7 может оказаться не очень хорошей идеей.

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

PowerShell 7 ускоряет выполнение сценариев

PowerShell 7 — одна из новейших стабильных версий PowerShell с долгосрочной поддержкой (LTS). Он обеспечивает более быстрый и простой способ использования PowerShell даже при использовании других операционных систем, таких как macOS или Linux. Хотя чтение документации может занять некоторое время, в конечном итоге вы сэкономите больше времени, когда освоите новые обновления.