Technical Anshu 主页 › 教程 › PowerShell 脚本到 EXE
⚙️ PowerShell · PS2EXE

将 PowerShell 脚本转换为 EXE

对于永远不会打开 PowerShell 的人来说,PowerShell 脚本没有任何用处。使用免费的 PS2EXE 模块将 .ps1 转换为一个可以双击的 EXE - 安装、命令、GUI、图标、版本和管理选项,以及转换真正执行的操作的诚实限制。

✍️ Technical Anshu⚙️ PowerShell Scripting🎧 Multi-Language Audio
将 PowerShell 脚本转换为 EXE
🎧 多语言音频: 在视频播放器中,点击 [设置] (⚙️) ➔ [音频轨道] 选择您的首选语言。

📑章节

  • 为什么 .ps1 文件难以共享 - 以及将其转换为 EXE 可以实际解决什么问题
  • 首先测试脚本,同时它仍然是纯文本文件
  • 从 PowerShell 库安装免费的 PS2EXE 模块
  • 使用一个命令进行转换 - Invoke-PS2EXE
  • 通过 Win-PS2EXE GUI 进行相同的转换
  • 图标、版本详细信息和 require-admin 选项
  • 按照用户的方式测试完成的 EXE
  • 诚实的限制 - 转换后的 EXE 不会隐藏您的脚本
  • 📋 概述和分步指南

    1

    在转换脚本之前对其进行测试

    切勿转换未经测试的脚本。一旦脚本位于 EXE 中,控制台和错误消息就会被隐藏,因此每个错误都变得缓慢且难以查找。以普通用户和管理员身份运行 .ps1 文件,故意向其提供一次错误的输入,并且仅在每次都表现相同时才进行转换。

    2

    安装 PS2EXE 模块

    PS2EXE 是发布在 PowerShell Gallery 上的免费模块。您只需在构建 EXE 的 PC 上安装一次即可 - 收到完成的 EXE 的人无需安装任何内容。打开 PowerShell 并运行:

    PowerShell
    Install-Module -Name ps2exe

    第一次,PowerShell 可能会要求您信任 PSGallery 存储库 - 如果您自己开始安装,请回答“是”。如果模块安装被您计算机上的策略阻止,则仅允许您自己的帐户安装:

    PowerShell
    Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
    3

    使用 Invoke-PS2EXE 命令进行转换

    一个命令即可完成转换。它命名输入脚本和输出文件 - 将示例名称替换为您自己的脚本:

    PowerShell
    Invoke-PS2EXE -inputFile ".\DiskCleanup.ps1" -outputFile ".\DiskCleanup.exe"

    从保存脚本的文件夹运行它,EXE 将出现在 .ps1 文件旁边。这就是整个转换 - 步骤 5 中的选项会在您需要时添加到同一行中。

    4

    或者使用 Win-PS2EXE GUI

    更喜欢点击而不是打字?该模块还附带一个图形前端:

    PowerShell
    Win-PS2EXE

    选择输入文件,选择输出文件,勾选所需的选项,然后按“编译”。 GUI 生成与命令行完全相同的 EXE - 它是相同的工具,顶部有一个表单,因此请使用您认为更清晰的那个。

    5

    添加图标、版本信息和管理员权限

    如果要共享 EXE,请为其指定一个标识。添加 -iconFile ".\tool.ico" 作为自定义图标,并添加 -title、-product、-company 和 -version 来填充文件属性的“详细信息”选项卡 - 命名文件对于用户和扫描仪来说比匿名文件更值得信赖。如果脚本更改系统设置,请添加 -requireAdmin ,以便 Windows 在 EXE 启动时要求提升权限,而不是脚本中途失败。如果脚本显示自己的窗口或表单,-noConsole 会停止其后面出现的黑色控制台窗口 - 但切勿将其用于在控制台中询问用户问题的脚本,否则 EXE 在等待无人可以键入的输入时看起来会冻结。

    6

    像真实用户一样测试 EXE

    将 EXE 复制到中性位置(桌面或共享文件夹),然后双击它。不要从 PowerShell 窗口来判断它。如果需要管理员权限,请确认出现 UAC 提示并在其后完成作业。然后将脚本和 EXE 放在同一文件夹中。当脚本更改时,重新运行转换并替换 EXE - 永远不要分发过时的版本。

    📌 注意: 目标电脑无需安装任何内容。 EXE 将您的脚本交给已内置于 Windows 中的 PowerShell 引擎 - 转换会更改打包,而不是引擎。
    7

    诚实的限制 - 分享之前请先阅读

    ⚠️ 警告:将脚本转换为 EXE 不会隐藏它、锁定它或加密它。 PS2EXE 将您的脚本包装在一个小型 .NET 程序中,完整的脚本文本以编码形式在 EXE 中传输。编码不是加密——没有钥匙也没有锁。当 EXE 运行时,它必须将可读的脚本交给 PowerShell 引擎,并且程序在运行时可以读取的任何内容,有决心的人也可以读取。将转换后的 EXE 内的所有内容视为公共。

    这一事实给出了保证您安全的规则:永远不要在您转换的脚本中添加秘密 - 没有管理员密码,没有服务帐户密码,没有 API 密钥或令牌,没有您不会打印在海报上的 Wi-Fi 密钥。如果脚本需要密码,则它必须在运行时询问密码或从适当的凭据存储中读取密码,切勿将其带入文件中。

    还有一个更诚实的限制:一个全新的、未签名的 EXE,在其内部解码和运行文本,其形状与真正的恶意软件交付相同,因此防病毒软件和 SmartScreen 可能会标记您转换后的文件,即使您的脚本是干净的。诚实的修复是身份,而不是技巧:填写第 5 步中的版本信息,每次从同一位置分发文件,如果您定期共享工具,则使用代码签名证书对其进行签名。切勿通过告诉用户禁用防病毒软件来回应警告。

    🏷️Topic Search Variables & Keywords

    🔍 PowerShell 🔍 PS2EXE 🔍 Invoke-PS2EXE 🔍 Win-PS2EXE 🔍 PS1 to EXE 🔍 TechnicalAnshu 🔍 ITAdmin 🔍 Scripting 🔍 Convert PowerShell Script to EXE 🔍 PowerShell Script Converter 🔍 Install-Module ps2exe 🔍 Windows Admin Tools
    🎙️ 完整文字记录 — 点击展开

    使用免费的 PS2EXE 模块将 PowerShell 脚本 (.ps1) 转换为双击 EXE:安装、Invoke-PS2EXE 命令、GUI、图标、版本和管理选项,以及诚实的限制。

    分步故障排除指南和解决方案 - 将 PowerShell 脚本转换为软件。技术安叔屏幕演示。

    (转录在源页面上结束)

    ❓ 常见问题(英文)

    本教程 100% 免费学习吗?

    是的!技术安数演示的所有指南和方法均使用免费、合法的教育资源。

    初学者可以遵循本指南吗?

    绝对是!每个步骤都在屏幕上演示并附有详细说明,以便任何人都可以轻松遵循。

    如果遇到困难我可以在哪里提问?

    直接在 YouTube 视频上发表评论,我们的社区和技术安树将为您提供帮助。

    🚀 在 YouTube 上观看完整教程

    🚀 在 YouTube 上观看完整的分步视频教程:https://www.youtube.com/watch?v=F2xMkbJi4wk

    订阅技术安数以获取 IT 支持、Windows 故障排除和服务器管理。

    ▶️观看完整视频
    本教程基于技术安叔的将PowerShell脚本转换为EXE视频 • 是否卡在任何步骤?在视频评论中提问——你会在那里得到帮助🙏