如何使用PS2EXE将PowerShell脚本编译为可执行程序

时间:2021-09-29 01:05:22

如何使用PS2EXE将PowerShell脚本编译为可执行程序

关于PS2EXE

PS2EXE是一个可以将PowerShell脚本编译为可执行程序的模块,在GUI和Ingo Karstein脚本的支持下,该模块能够生成真正的Windows可执行程序。除此之外,PS2EXE还支持PowerShell 5.x和图形化前端。

注意事项

有一些人可能会滥用PS2EXE来编译他的计算机病毒脚本,因此越来越多的病毒扫描程序会将使用PS2EXE创建的程序识别为恶意程序并将其删除。因此,希望大家不要将其用于恶意目的。

工具安装

首先,我们需要使用下列命令将该项目源码克隆至本地:

  1. gitclonehttps://github.com/MScholtes/PS2EXE.git

接下来,运行下列命令安装PS2EXE:

  1. PSC:\>Install-Moduleps2exe

工具使用

  1. Invoke-ps2exe.\source.ps1.\target.exe

  1. ps2exe.\source.ps1.\target.exe

上述命令会将“source.ps1”编译成可执行程序target.exe,如果命令参数中忽略了“.\target.exe”的话,生成的文件将为“.\source.exe”。

或者,我们也可以启动Win-PS2EXE来开启图形化前端:

  1. Win-PS2EXE

支持的参数

  1. ps2exe[-inputFile]'<file_name>'[[-outputFile]'<file_name>'][-prepareDebug]
  2.  
  3. [-x86|-x64][-lcid<id>][-STA|-MTA][-noConsole][-UNICODEEncoding]
  4.  
  5. [-credentialGUI][-iconFile'<filename>'][-title'<title>'][-description'<description>']
  6.  
  7. [-company'<company>'][-product'<product>'][-copyright'<copyright>'][-trademark'<trademark>']
  8.  
  9. [-version'<version>'][-configFile][-noOutput][-noError][-noVisualStyles][-requireAdmin]
  10.  
  11. [-supportOS][-virtualize][-longPaths]

参数解释

  1. inputFile=你需要转换为可执行程序的PowerShell脚本(文件需要是UTF8或UTF16编码)
  2.  
  3. outputFile=目标可执行文件名称或目录
  4.  
  5. prepareDebug=创建调试帮助信息
  6.  
  7. x86或x64=编译运行时32位或64位代码
  8.  
  9. lcid=编译可执行程序的位置ID
  10.  
  11. STA或MTA=单线程模式或多线程模式
  12.  
  13. noConsole=生成的可执行文件为Windows应用程序,不带终端窗口
  14.  
  15. UNICODEEncoding=将输入编码为UNICODE(终端模式)
  16.  
  17. credentialGUI=使用GUI弹出凭证窗口(终端模式)
  18.  
  19. iconFile=编译可执行文件的图标文件名
  20.  
  21. title=标题信息
  22.  
  23. description=描述信息
  24.  
  25. company=公司信息
  26.  
  27. product=产品信息
  28.  
  29. copyright=版权信息
  30.  
  31. trademark=商标信息
  32.  
  33. version=版本信息
  34.  
  35. configFile=编写配置文件(<outputfile>.exe.config)
  36.  
  37. noOutput=生成可执行文件,不带标准输出
  38.  
  39. noError=生成可执行文件,不带错误输出
  40.  
  41. noVisualStyles=禁用WindowsGUI应用程序的可视化风格
  42.  
  43. requireAdmin=如果启用的UAC,编译的可执行文件只会在提权上下文中执行
  44.  
  45. supportOS=使用最新Windows版本的功能
  46.  
  47. virtualize=激活应用程序虚拟化
  48.  
  49. longPaths=启用长路径支持

项目地址

PS2EXE:【GitHub传送门

原文地址:https://www.freebuf.com/articles/system/290918.html