Работа со сценариями PowerShell может оказаться захватывающим приключением. Ведь он предоставляет вам чистый интерфейс для того, чтобы вы могли создать свои сценарии и автоматизировать с их помощью шаблонные задачи.
Если вы разработчик, то вполне можете создавать полноценные сценарии автоматизации. PowerShell отлично справляется с этой задачей, особенно если вы используете его для того, чтобы создавать, тестировать и развертывать решения в средах CI/CD.
В этой статье мы поближе посмотри на то, как создаются и запускаются сценарии PowerShell. Здесь мы пробежимся по пошаговому руководству, как сделать это с помощью VS Code, Notepad и ISE (Integrated Scripting Environment – интегрированная среда разработки сценариев).
Давайте начнем!
Что такое PowerShell?
PowerShell – это кросс-платформенное инструментальное средство автоматизации и конфигурирования. Он предоставляет полный пакет для администраторов, разработчиков и прочих пользователей, который позволяет запускать командлеты (небольшие и легкие команды) для управления различными задачами.
Под пакетом понимается следующее:
- Оболочка командной строки
- Соответствующий язык программирования
- Фреймворк для выполнения командлетов
В отличие от командной строки, его можно использовать на всех основных платформах, в том числе Windows, Linux и macOS.
Если смотреть с технической точки зрения, в основе PowerShell лежит платформа .NET. За счет своего принципа работы он поддерживает объекты и структурированные данные, например, JSON, CSV и XML. Кроме того, разработчики могут вместе с PowerShell использовать REST API. Увы, но стандартная командная строка всего этого не поддерживает, так как она текстовая.
Все сценарии PowerShell имеют расширение .ps1.
Если вы собираетесь писать сценарии PowerShell, то вам нужно знать три ключевых понятия:
- Командлеты: это элементарный исполняемый сценарий, который предлагает предварительно настроенный функционал. Например, для того, чтобы скопировать какой-то элемент, вы можете воспользоваться командлетом Copy-Item, для того, чтобы получить справку, - Get-Help, для того, чтобы вывести что-либо на экран, - Write-Host.
- Псевдонимы: псевдонимы позволяют легко обращаться к командлетам. Они обеспечивают более быстрый доступ к ним. Однако желательно использовать их с подсказками с точки зрения интерактивности и не стоит их использовать при непосредственном написании сценариев PowerShell.
- Функции: функция – это набор операторов PowerShell. Инициировать работу функции можно, вызвав ее.
PowerShell и написание сценариев
Написание сценариев – это основополагающий метод автоматизации некоторой вашей работы. Неважно кто вы, программист, администратор или фрилансер, сценарии могут автоматизировать какие-то стандартные рабочие процессы.
Если уж на то пошло, то у написания сценариев есть большое количество преимуществ, например,
- Автоматизация экономит ваше драгоценное время
- Переносимая база знаний
- Позволяет поддерживать согласованность между системами
- Повышает уровень ваших навыков и шансы на трудоустройство
Вы можете писать сценарии PowerShell, Bash, Ruby или Python.
В общем-то, PowerShell – это отличный инструмент для написания сценариев. Между тем, Windows не позволяет запускать сценарии в силу настроек безопасности. Их запуск может привести к таким ошибкам, как «Running scripts is disabled on this system.» («Запуск сценариев в этой системе запрещен.»). Для того, чтобы обойти этот момент и все же выполнить сценарий, вам необходимо установить правильную политику исполнения (рассмотрено далее).
Почему для написания сценариев нужно использовать PowerShell?
Одна из основных причин, почему для написания сценариев стоит выбрать именно PowerShell, заключается в том, что он может работать на разных платформах. Он поддерживает Windows, Linux и MacOS, чего нельзя сказать о стандартной командой строке Windows.
PowerShell можно использовать для того, чтобы создавать простые задания с помощью простых построителей задач. Например, вы можете воспользоваться PowerShell для того, чтобы перезагрузить компьютер, периодически очищать кэш или даже выполнить аутентификацию сеансов.
Кроме всего прочего, сценарии PowerShell преимущественно используются для того, чтобы автоматизировать процесс управления системой. И тем не менее, вы, как разработчик, можете использовать его для тестирования, сборки и развертывания сборок в среде CI/CD.
Как создавать сценарии PowerShell?
Для того, чтобы создавать сценарии PowerShell, вам нужен текстовый редактор. В большинстве случаев вы будете довольны и самым простым текстовым редактором, но, если вы решите попробовать современный редактор текста/кода, то можете обнаружить, что весь процесс стал лучше поддаваться управлению.
Именно поэтому мы начнем с того, что продемонстрируем то, как можно создавать сценарии PowerShell с помощью Visual Studio Code (также известного как VS Code). Помимо этого, мы рассмотрим, как можно создавать сценарии PowerShell в Блокноте и прочих интегрированных средах, которые отлично подходят для написания сценариев, например, PowerShell Integrated Scripting Environment (PowerShell ISE).
1. С помощью VS Code
VS Code – это надежный кросс-платформенный редактор кода, и, к тому же, бесплатный. Его разработкой занимается компания Microsoft. Она предоставляет пользователям дополнительные преимущества отличной поддержки PowerShell.
Вы получаете чистый готовый интерфейс и можете выбрать для работы чуть ли не любой язык программирования.
VS Code – это полноценный редактор кода, а значит, он поддерживает расширения. И для того, чтобы писать сценарии PowerShell было еще более удобно, мы воспользуемся расширением PowerShell.
Установка Visual Studio Code
Для начала вам нужно установить VS Code.
Для того, чтобы сделать это, перейдите на страницу скачивания Visual Studio Code. Выберите подходящую версию VS Code в зависимости от вашей операционной системы. Мы используем Windows 11, поэтому мы выбрали версию для Windows.
После того, как загрузка завершится, дважды щелкните по установщику и для того, чтобы установить программу на свой компьютер, следуйте указаниям мастера установки.
Установка расширения PowerShell
Установить расширение PowerShell можно двумя способами. Для начала создайте новый файл с расширением .ps1.
VS Code довольно продуманный и понимает, что вы собираетесь работать с PowerShell, поэтому автоматически рекомендует вам установить расширение PowerShell от Microsoft.
Чтобы установить расширение, нажмите кнопку «Install» («Установить»). Или же, если вы хотите узнать больше, нажмите кнопку «Show Recommendations» («Показать рекомендации»).
Если по той или иной причине Visual Studio Code не выдал вам никаких рекомендаций, вы можете попробовать найти плагин вручную.
Для того, чтобы открыть окно с расширениями, нажмите на символ с четырьмя квадратиками (с одним вылетающим квадратиком) или нажмите Ctrl+Shift+X. Теперь введите в строке поиска «PowerShell» и нажмите на первый результат. После этого переходите к его установке (нажмите кнопку «Install»).
В конце он спросит вас, доверяете ли вы авторам файлов, находящихся в рабочей среде. Для того, чтобы завершить установку, нажмите «Trust Workspace&Install» («Доверять рабочей среде и установить»).
Создание сценария PowerShell с помощью VS Code
Теперь, когда вы по всем правилам установили VS Code и расширение PowerShell, вы можете создать свой первый сценарий PowerShell.
Если вы еще не создали новый файл, то вы можете это сделать следующим образом:
- Откройте VS Code
- Откройте главное меню, нажмите «File» («Файл»), а затем «New Text File» («Новый текстовый файл»).
- Теперь сохраните файл, выбрав «File» -> «Save As» («Файл» -> «Сохранить как»).
- Введите название файла и не забудьте указать расширение .ps1.
- В конце нажмите «Save file» («Сохранить файл»).
Вот и все! Теперь вы можете создать свой сценарий. Я добавил командлет Write-Host со значением «This is a VS Code Script written for Geekflare.» («Это сценарий VS Code, написанный для Geekflare.»).
Чуть позже мы посмотрим, как выполнить этот сценарий, так что читайте дальше!
2. С помощью Блокнота
Нет ничего проще, чем создавать сценарии PowerShell в Блокноте.
Все, что вам для этого нужно, выполнить следующее:
- Откройте Пуск и найдите там Блокнот (Notepad).
- Теперь щелкните по нему правой кнопкой мыши и выберите «Открыть от имени администратора» («Open as an administrator»).
- Напишите свой сценарий.
- В качестве примера напишем «This is a PowerShell Script written in Notepad.» («Это сценарий PowerShell, написанный в Блокноте.»).
- Перейдите в главное меню, выберите «File» и нажмите «Save As».
- Введите название вашего сценария PowerShell и нажмите «Save».
Вот и все! Вы успешно создали сценарий PowerShell в Блокноте.
3. С помощью PowerShell ISE
Кроме того, PowerShell в Windows предлагает нам свою собственную интегрированную среду разработки сценариев. С ее помощью вы можете писать свои сценарии, не прибегая к помощи сторонних редакторов кода и текста.
Для того, чтобы использовать его с толком, вам нужно выполнить следующее:
- Откройте Пуск.
- Найдите Windows PowerShell ISE, введя в строку поиска «PowerShell».
- Выберите первый результат, щелкните по нему правой кнопкой мыши и выберите «Открыть от имени администратора». Откроется окно Windows PowerShell ISE.
- Теперь нажмите «File» и выберите «New» («Новый»). Откроется окошко с новым файлом (как показано ниже).
- Напишите сценарий. В качестве примера напишем «This is a PowerShell Script written with the help of PowerShell ISE.» («Это сценарий PowerShell, написанный с помощью PowerShell ISE.»).
- После чего, нажмите «File» и выберите «Save As».
- Введите название файла и нажмите «Save».
Помимо всего прочего, PowerShell ISE может помочь вам запустить сценарий. Для этого найдите сверху кнопку «RUN» («ЗАПУСТИТЬ») и нажмите ее. Если она выдает ошибку безопасности, то ниже вы можете прочитать, как ее исправить.
Как исправить ошибку безопасности сценария PowerShell и запустить его?
Как мы уже говорили ранее, у Windows есть строгая политика безопасности в отношении запуска сценариев. Для того, чтобы решить этот вопрос, вам нужно разрешить выполнение сценариев на вашем компьютере под управлением Windows.
Для этого выполните следующее:
- Откройте Пуск.
- Найдите PowerShell.
- Теперь щелкните на приложение PowerShell правой кнопкой мыши.
- Выберите «Открыть от имени администратора».
- Когда PowerShell откроется, введите команду Set-ExecutionPolicy RemoteSigned.
- Нажмите Enter. После этого приложение запросит подтверждение. Чтобы разрешить запуск сценариев, нажмите А.
Вот и все! Теперь вы наконец-то можете запускать свои сценарии!
Ниже мы показали, как это выглядит в случае с PowerShell ISE.
А вот так это выглядит в случае с Visual Studio Code.
А в случае с Блокнотом вам придется запустить сценарий непосредственно из командной строки PowerShell.
Рекомендации по написанию и запуску сценариев PowerShell
Когда вы работаете со сценариями PowerShell, необходимо следовать рекомендациям, а именно:
- Используйте полную форму командлета, а не псевдоним. Псевдоним удобно использовать, когда вы работаете с консолью. Да, он может улучшить интерактивность, но может испортить сценарий.
- Желательно не использовать командлет Write-Host, поскольку его функциональные возможности довольно ограничены. Да, он может вывести какой-то текст на экран, но вы не можете настроить то, каким цветом будет печататься этот текст. Вместо этого лучше используйте командлет Write-Output.
- Всегда используйте существительное внутри командлета только в единственном числе, не во множественном.
- Используйте для командлета только утвержденные глаголы.
- Если возможно, указывайте расширение приложения. Это поможет устранить путаницу и повысит уровень читаемости.
- Используйте специальные редакторы кода PowerShell, например, VS Code или PowerShell ISE. У них есть отличные функции, которые помогут вам в написании и запуске сценариев PowerShell. Конечно, вы можете использовать Блокнот (Notepad или Notepad++), но в таком случае вы сузите границы своих возможностей.
- Старайтесь комментировать код, но не переборщите, поскольку это может плохо повлиять на читаемость кода и удобство его сопровождения.
- Убедитесь в том, что вы установили правильный параметр безопасности для запуска сценариев PowerShell.
Заключение
Вот и все! Теперь вы знаете, как создавать и запускать сценарии PowerShell с помощью Блокнота, VS Code и PowerShell ISE. Кроме того, вы можете использовать любой из упомянутых выше инструментов для того, чтобы писать и выполнять сценарии PowerShell.
И тем не менее, как уже было сказано в рекомендациях, писать сценарии PowerShell в Блокноте – не самая лучшая идея. В таком случае вы упускаете возможность воспользоваться многими функциями, которые есть у специальных редакторов кода VS Code и PowerShell ISE.