|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Создание исполняемого файла на основе скрипта PowerShell |
|
PowerShell - [решено] Создание исполняемого файла на основе скрипта PowerShell
|
Необычный Сообщения: 4463 |
Тема является выделенной из Как полюбить PowerShell? для поддержания чистоты и порядка.
Есть скрипт Совершенно бестолковый, выводит "Привет мир!" Я хочу из данного скрипта сделать исполняемый файл. Допустим гугл нам подскажет команду Ps2Exe. PS C:\Users\Andrew\Documents\PS_test> ps2exe -inputFile C:\Users\Andrew\Documents\PS_test\helloWorld.ps1 -outputFile C:\Users\Andrew\Documents\PS_test\helloWorld.ps1 -iconFile C:\Data\Icon.ico -noConsole -title "MyScript" -version 0.0.0.1 PS2EXE-GUI v0.5.0.27 by Ingo Karstein, reworked and GUI support by Markus Scholtes & : Имя "Invoke-ps2exe" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку. строка:1 знак:2 + &'Invoke-ps2exe' -inputFile C:\Users\Andrew\Documents\PS_test\helloW ... + ~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Invoke-ps2exe:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS C:\Users\Andrew\Documents\PS_test> ps2exe PS2EXE-GUI v0.5.0.27 by Ingo Karstein, reworked and GUI support by Markus Scholtes Usage: Invoke-ps2exe [-inputFile] '<filename>' [[-outputFile] '<filename>'] [-prepareDebug] [-x86|-x64] [-lcid <id>] [-STA|-MTA] [-noConsole] [-UNICODEEncoding] [-credentialGUI] [-iconFile '<filename>'] [-title '<title>'] [-description '<description>'] [-company '<company>'] [-product '<product>'] [-copyright '<copyright>'] [-trademark '<trademark>'] [-version '<version>'] [-configFile] [-noOutput] [-noError] [-noVisualStyles] [-exitOnCancel] [-DPIAware] [-requireAdmin] [-supportOS] [-virtualize] [-longPaths] Причем не важно, короткая форма вызова будет или нет -- Имя командлета не распознано. Но! Если его вызвать просто так (ps2exe?, Invoke-ps2exe) -- то командлет находится. Можно через графику (win-ps2exe), можно другими инструментами (powershell on steroids). Т.е. задача решаема, это не проблема. Проблема мне понять что здесь идет не так. |
|
------- Отправлено: 18:23, 22-08-2022 |
fascinating rhythm Сообщения: 6565
|
Профиль | Отправить PM | Цитировать У вас у входного и выходного файла одинаковые имена и расширения, может, дело в этом?
|
------- Отправлено: 21:57, 22-08-2022 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Да, ошибка в написании есть, но нет, ситуацию это не спасает.
PS C:\Users\Andrew\Documents\PS_test> ps2exe -inputFile C:\Users\Andrew\Documents\PS_test\helloWorld.ps1 -outputFile C:\Users\Andrew\Documents\PS_test\111.exe PS2EXE-GUI v0.5.0.27 by Ingo Karstein, reworked and GUI support by Markus Scholtes & : Имя "Invoke-ps2exe" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку. строка:1 знак:2 + &'Invoke-ps2exe' -inputFile C:\Users\Andrew\Documents\PS_test\helloW ... + ~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Invoke-ps2exe:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException Я с какой-нибудь оказией попробую на чистой установке. |
------- Отправлено: 09:23, 23-08-2022 | #3 |
fascinating rhythm Сообщения: 6565
|
Профиль | Отправить PM | Цитировать Надо поставить ps2exe как модуль в Powershell, это было сделано?
https://github.com/MScholtes/PS2EXE#installation |
------- Отправлено: 09:41, 23-08-2022 | #4 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Версия ps
PS C:\Users\Andrew\Documents\PS_test> PS C:\Users\Andrew\Documents\PS_test> Install-Module ps2exe PS C:\Users\Andrew\Documents\PS_test> ps2exe -inputFile C:\Users\Andrew\Documents\PS_test\helloWorld.ps1 -outputFile C:\Users\Andrew\Documents\PS_test\111.exe PS2EXE-GUI v0.5.0.27 by Ingo Karstein, reworked and GUI support by Markus Scholtes & : Имя "Invoke-ps2exe" не распознано как имя командлета, функции, файла сценария или выполняемой программы. Проверьте правильность написания имени, а также наличие и правильность пути, после чего повторите попытку. строка:1 знак:2 + &'Invoke-ps2exe' -inputFile C:\Users\Andrew\Documents\PS_test\helloW ... + ~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Invoke-ps2exe:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS C:\Users\Andrew\Documents\PS_test> ls Directory: C:\Users\Andrew\Documents\PS_test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 21.08.2022 9:44 1558 helloWorld.ps1 -a--- 20.08.2022 19:45 32768 hw.exe -a--- 20.08.2022 19:51 24576 hw_console.exe -a--- 21.08.2022 9:10 281088 tt.exe PS C:\Users\Andrew\Documents\PS_test> $PSVersionTable Name Value ---- ----- PSVersion 7.2.0-preview.10 PSEdition Core GitCommitId 7.2.0-preview.10 OS Microsoft Windows 10.0.17763 Platform Win32NT PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 WSManStackVersion 3.0 ---- Значит, дело было так. В PS версии 7 это фигня через установку модуля не отрабатывает. Причем молчит как резанная. В PS версии 5, открытой от имени администратора после Install-Module потребовался Import-Module PS C:\Windows\system32> Install-Module ps2exe Для продолжения требуется поставщик NuGet Для взаимодействия с репозиториями на основе NuGet модулю PowerShellGet требуется версия поставщика NuGet "2.8.5.201" или более новая. Поставщик NuGet должен быть доступен в "C:\Program Files\PackageManagement\ProviderAssemblies" или "C:\Users\Andrew\AppData\Local\PackageManagement\ProviderAssemblies". Поставщик NuGet можно также установить, выполнив команду "Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force". Вы хотите, чтобы модуль PowerShellGet установил и импортировал поставщик NuGet прямо сейчас? [Y] Да - Y [N] Нет - N [S] Приостановить - S [?] Справка (значением по умолчанию является "Y"): y Ненадежный репозиторий Идет установка модулей из ненадежного репозитория. Если вы доверяете этому репозиторию, измените его значение InstallationPolicy, запустив командлет Set-PSRepository. Вы действительно хотите установить модули из "PSGallery"? [Y] Да - Y [A] Да для всех - A [N] Нет - N [L] Нет для всех - L [S] Приостановить - S [?] Справка (значением по умолчанию является "N"):y PS C:\Users\Andrew\Documents\PS_test> ps2exe ps2exe : Команда "ps2exe" найдена в модуле "ps2exe", но загрузить этот модуль не удалось. Для получения дополнительных сведений выполните команду "Import-Module ps2exe". PS C:\Users\Andrew\Documents\PS_test> Set-ExecutionPolicy Командлет Set-ExecutionPolicy в конвейере команд в позиции 1 Укажите значения для следующих параметров: ExecutionPolicy: Unrestricted PS C:\Users\Andrew\Documents\PS_test> ps2exe PS2EXE-GUI v0.5.0.27 by Ingo Karstein, reworked and GUI support by Markus Scholtes PS C:\Users\Andrew\Documents\PS_test> ps2exe .\helloWorld.ps1 PS2EXE-GUI v0.5.0.27 by Ingo Karstein, reworked and GUI support by Markus Scholtes Reading input file C:\Users\Andrew\Documents\PS_test\helloWorld.ps1 Compiling file... Output file C:\Users\Andrew\Documents\PS_test\helloWorld.exe written PS C:\Users\Andrew\Documents\PS_test> ls Каталог: C:\Users\Andrew\Documents\PS_test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 23.08.2022 10:05 29184 helloWorld.exe -a---- 21.08.2022 9:44 1558 helloWorld.ps1 PS C:\Users\Andrew\Documents\PS_test> ps2exe -inputFile C:\Users\Andrew\Documents\PS_test\helloWorld.ps1 -outputFile C:\Users\Andrew\Documents\PS_test\111.exe PS2EXE-GUI v0.5.0.27 by Ingo Karstein, reworked and GUI support by Markus Scholtes PowerShell Desktop environment started... Reading input file C:\Users\Andrew\Documents\PS_test\helloWorld.ps1 Compiling file... Output file C:\Users\Andrew\Documents\PS_test\111.exe written PS C:\Users\Andrew\Documents\PS_test> ls Directory: C:\Users\Andrew\Documents\PS_test Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 23.08.2022 10:13 29184 111.exe -a--- 23.08.2022 10:05 29184 helloWorld.exe -a--- 21.08.2022 9:44 1558 helloWorld.ps1 |
|
------- Отправлено: 10:15, 23-08-2022 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] PowerShell - отмена запуска скрипта на серверах | invademan | Скриптовые языки администрирования Windows | 1 | 19-10-2018 10:46 | |
[решено] создание скрипта или bat файла | shadow395 | AutoIt | 22 | 15-08-2018 09:16 | |
CMD/BAT - Создание третьего файла на основе двух данных | blackeangel | Скриптовые языки администрирования Windows | 6 | 10-09-2016 23:04 | |
PowerShell - Создание динамического скрипта для PowerShell | AZABAZA | Скриптовые языки администрирования Windows | 1 | 18-11-2015 13:52 | |
Приоритет для исполняемого файла | Seven | Microsoft Windows NT/2000/2003 | 1 | 15-01-2010 12:25 |
|