Как конвертировать скрипт PowerShell в EXE

Как конвертировать PS1 в EXEМногим пользователям когда-либо приходилось вводить команды PowerShell, в том числе и взятые с этого сайта. Однако, Windows PowerShell — это не просто «консоль и команды», а серьезный скриптовый язык, позволяющий автоматизировать работу с ОС и создать очень многое, в том числе и GUI-приложения.

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

Установка и использование PS2EXE

Для того, чтобы легко и быстро выполнить преобразование .PS1 в .EXE можно использовать модуль PowerShell PS2EXE. Он не установлен в Windows 11/10 по умолчанию, но установка сравнительно простая:

  1. Запустите Windows PowerShell или Терминал Windows от имени Администратора. Сделать это можно в меню по правому клику на кнопке «Пуск».
  2. Выполните команду:
    Install-Module -Name PS2EXE

    При выполнении потребуется подтвердить установку из стороннего репозитория.

  3. По порядку выполните следующие две команды. Первая включит возможность запуска удаленно подписанных скриптов, вторая — импортирует ранее установленный модуль:
    Set-ExecutionPolicy RemoteSigned
    Import-Module -Name PS2EXE
  4. Примечание: вы можете ограничить установку и изменение политик только для текущего пользователя, добавив параметр
    -Scope CurrentUser

    в конце первой и третьей команд.

Готово, модуль PS2EXE установлен и готов к использованию.

Для того, чтобы конвертировать скрипт PowerShell (.PS1) в EXE в самом простом варианте достаточно выполнить следующие действия:

  1. Скопируйте ваш скрипт Windows PowerShell и, если хотите — иконку с расширением .ICO в какую-либо папку.
  2. Запустите Windows PowerShell и по порядку выполните команды
    cd путь_к_папке_из_1_шага
    Invoke-PS2EXE .\script.ps1 .\script.exe -iconFile .\icon.ico

    Во второй команде script.ps1 измените на имя скрипта в папке, script.exe — на имя готового EXE файла, icon.ico — на имя иконки. Если иконка не устанавливается, не используйте параметр -iconFile

  3. Результат: в папке в дополнение к ранее размещенными вами файлам появится исполняемый EXE файл скрипта.

В своём тесте я экспериментировал с GUI-скриптом загрузки оригинальных ISO образов Windows, после конвертации работает исправно:

Дополнительная информация

Некоторые дополнительные нюансы, касающиеся использования PS2EXE, которые могут пригодиться:

  • После конвертации переменная $PSScriptRoot (указание пути к папке, где лежит скрипт) работать не будет.
  • Запустив команду Invoke-PS2EXE вы получите список дополнительных поддерживаемых параметров. Среди важных и часто востребованных: -noConsole (не отрисовывать консоль, полезно для GUI приложений и фоновых задач), параметры для задания заголовка, описания, версии продукта, -requireAdmin — для запроса прав Администратора при запуске, -x64 для компиляции в 64-битную архитектуру (важно, если требуется использовать ветки реестра и DLL в x64-версиях).Доступные параметры PS2EXE

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *