Как преобразовать скрипт PowerShell в исполняемый EXE

Чтобы иметь возможность запускать в Windows 10 скрипты PS1, необходимо изменить политику выполнения в самом PowerShell. Это нетрудно, но если вы захотите выложить такой скрипт в сеть, надо будет приложить к нему мини-инструкцию, поясняющую пользователю, что нужно делать, чтобы скрипт выполнился. Но можно пойти и иным путем — сконвертировать PS1-скрипт в исполняемый EXE-файл, обойдя таким образом политику выполнения.

Другим немаловажным преимуществом конвертации скриптов PowerShell в EXE-файлы является возможность их скрытого запуска. Если скомпилировать PS1-файл с ключами noOutpup, noConsole и noError, окна консоли при его исполнении появляться не будут.

Для конвертирования PowerShell скриптов удобнее всего использовать тулзу PS2EXE-GUI, основанную на скрипте PS2EXE.

Последний поддерживает множество опций, просмотреть которые можно запустив скрипт в PowerShell без параметров, предварительно разрешив выполнение сценариев командой set-executionpolicy remotesigned.

PS2EXE

Например, параметр inputFile используется в пути к конвертируемому файлу, а outputFile — в пути к созданному экзешнику.

Запустив консоль с правами администратора выполните команду следующего вида:

В случае удачной конвертации вы получите сообщение «Config file for EXE created».

PowerShell

К сожалению, при конвертировании у нас возникла ошибка, указывающая на якобы неподдерживаемую версию PowerShell.

При использовании же PS2EXE-GUI всё прошло удачно.

Проводник

Запустив утилиту, укажите в поле «Source file» путь к компилируемому скрипту, а в поле «Target file» — путь к будущему экзешнику. Дополнительно утилита предлагает добавить исполняемому файлу иконку, указать его версию и описание.

PS2EXE-GUI

Также обратите внимание на доступные параметры. Отметив пункт «Compile a graphic windows program», вы включите использование созданным EXE-файлом графической оболочки. Если программа должна выполняться в фоне, отметьте пункты «Suppress output» и «Suppress error output», если при запуске программы нужно запросить права администратора, включите настройку «Require administrator rights at runtime».

Compile

О плюсах такого преобразования было сказано выше, теперь пару слов о минусах. Особых преимуществ, кроме обхода политики выполнения и скрытия вывода, конвертирование PS1 и EXE не дает, программы будут выполняться с той же скоростью, что и скрипты, а для их работы в системе должны присутствовать PowerShell и .NET Framework.

PS1 и EXE

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

Страничка разработчика: gallery.technet.microsoft.com/scriptcenter/PS2EXE-GUI-Convert-e7cb69d5

Поделиться в соц сетях:

Рекомендуемые публикации:

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

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