Сервісний центр VPSGroup ремонт комп'ютерної техніки, заправка картриджів, ремонт оргтехніки, Київ, Виставковий центр, Васильківська, 55

Як конвертувати PowerShell в EXE.

конвертацію скрипт PowerShell в виконуваний exe-файл можна за допомогою PS2EXE-GUI. Цей конвертер заснований на скрипті PS2EXE, до якого додана графічна оболонка.

У скрипта є велика кількість додаткових опцій, тому почати краще з довідки. Для її виведення треба запустити скрипт ps2exe.ps1 без параметрів.



В найпростішому варіанті конвертації запускаємо ps2exe.ps1 і вказуємо йому в якості параметрів вхідного і вихідного файли. Для прикладу візьмемо простий скрипт, що виводить повідомлення на екран, сконвертіруем його і перевіримо результат:

. \ Ps2exe.ps1 -inputFile script.ps1 -outputFile script.exe



За замовчуванням вихідний файл створюється як консольний додаток. Якщо вказати ключ noConsole, то файл скомпілюється як Windows додаток:

. \ Ps2exe.ps1 -inputFile script.ps1 -outputFile script.exe -noConsole



Створений exe-файл підтримує кілька додаткових параметрів.Наприклад, запущений з параметром -wait він після виконання не завершиться, а чекатиме реакції користувача.



Ті, хто не любить працювати в консолі, можуть скористатися графічною оболонкою. Принцип тут той же, вказуємо вхідний і вихідний файл, і відзначаємо додаткові опції.До речі, на відміну від оригінального PS2EXE в GUI є пара нових параметрів.



Зверніть увагу, що при конвертації не відбувається перетворення скрипта в іншу мову програмування, просто скрипт загортається в код С #. Отриманий в результаті конвертації exe-файл являє собою збірку.Net, що містить вихідний скрипт в кодуванні Base64.

Тому створений exe-файл не є самостійним, для роботи йому потрібно PowerShell і .NET версії 2.0 і вище. Також конвертація не збільшить швидкість роботи скрипта і не дасть йому будь то додаткових переваг. Тоді навіщо взагалі потрібно конвертувати PowerShell в exe?

Плюси все-таки є.Наприклад, сконвертовані скрипт відпрацьовує навіть при заборону на виконання PowerShell скриптів. Це допоможе обійти політику виконання.



Ще одна перевага, це можливість прихованого запуску. Скомпільований з параметрами noOutpup, noError і noConsole скрипт виконується повністю непомітно для користувача.Домогтися такого ефекту іншими способами мені не вдалося. Це важливо для усіляких Logon скриптів.

Ну і нарешті, конвертацію можна використовувати в якості альтернативи обфускаціі. Наприклад, якщо ви передаєте свої скрипти стороннім особам і не хочете, щоб вони могли подивитися вихідний код.Однак тут є один тонкий момент. Сконвертовані скрипт можна легко расконвертіровать, виконавши його з ключем Extract, наприклад:

script.exe -extract: "script.ps1"

Тому зберігати в скриптах якісь важливі речі (напр. паролі) все ж не варто.

.