将 PowerShell 脚本转换为 EXE
对于永远不会打开 PowerShell 的人来说,PowerShell 脚本没有任何用处。使用免费的 PS2EXE 模块将 .ps1 转换为一个可以双击的 EXE - 安装、命令、GUI、图标、版本和管理选项,以及转换真正执行的操作的诚实限制。
📑章节
- 为什么 .ps1 文件难以共享 - 以及将其转换为 EXE 可以实际解决什么问题
- 首先测试脚本,同时它仍然是纯文本文件
- 从 PowerShell 库安装免费的 PS2EXE 模块
- 使用一个命令进行转换 - Invoke-PS2EXE
- 通过 Win-PS2EXE GUI 进行相同的转换
- 图标、版本详细信息和 require-admin 选项
- 按照用户的方式测试完成的 EXE
- 诚实的限制 - 转换后的 EXE 不会隐藏您的脚本
📋 概述和分步指南
在转换脚本之前对其进行测试
切勿转换未经测试的脚本。一旦脚本位于 EXE 中,控制台和错误消息就会被隐藏,因此每个错误都变得缓慢且难以查找。以普通用户和管理员身份运行 .ps1 文件,故意向其提供一次错误的输入,并且仅在每次都表现相同时才进行转换。
安装 PS2EXE 模块
PS2EXE 是发布在 PowerShell Gallery 上的免费模块。您只需在构建 EXE 的 PC 上安装一次即可 - 收到完成的 EXE 的人无需安装任何内容。打开 PowerShell 并运行:
Install-Module -Name ps2exe第一次,PowerShell 可能会要求您信任 PSGallery 存储库 - 如果您自己开始安装,请回答“是”。如果模块安装被您计算机上的策略阻止,则仅允许您自己的帐户安装:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned使用 Invoke-PS2EXE 命令进行转换
一个命令即可完成转换。它命名输入脚本和输出文件 - 将示例名称替换为您自己的脚本:
Invoke-PS2EXE -inputFile ".\DiskCleanup.ps1" -outputFile ".\DiskCleanup.exe"从保存脚本的文件夹运行它,EXE 将出现在 .ps1 文件旁边。这就是整个转换 - 步骤 5 中的选项会在您需要时添加到同一行中。
或者使用 Win-PS2EXE GUI
更喜欢点击而不是打字?该模块还附带一个图形前端:
Win-PS2EXE选择输入文件,选择输出文件,勾选所需的选项,然后按“编译”。 GUI 生成与命令行完全相同的 EXE - 它是相同的工具,顶部有一个表单,因此请使用您认为更清晰的那个。
添加图标、版本信息和管理员权限
如果要共享 EXE,请为其指定一个标识。添加 -iconFile ".\tool.ico" 作为自定义图标,并添加 -title、-product、-company 和 -version 来填充文件属性的“详细信息”选项卡 - 命名文件对于用户和扫描仪来说比匿名文件更值得信赖。如果脚本更改系统设置,请添加 -requireAdmin ,以便 Windows 在 EXE 启动时要求提升权限,而不是脚本中途失败。如果脚本显示自己的窗口或表单,-noConsole 会停止其后面出现的黑色控制台窗口 - 但切勿将其用于在控制台中询问用户问题的脚本,否则 EXE 在等待无人可以键入的输入时看起来会冻结。
像真实用户一样测试 EXE
将 EXE 复制到中性位置(桌面或共享文件夹),然后双击它。不要从 PowerShell 窗口来判断它。如果需要管理员权限,请确认出现 UAC 提示并在其后完成作业。然后将脚本和 EXE 放在同一文件夹中。当脚本更改时,重新运行转换并替换 EXE - 永远不要分发过时的版本。
诚实的限制 - 分享之前请先阅读
这一事实给出了保证您安全的规则:永远不要在您转换的脚本中添加秘密 - 没有管理员密码,没有服务帐户密码,没有 API 密钥或令牌,没有您不会打印在海报上的 Wi-Fi 密钥。如果脚本需要密码,则它必须在运行时询问密码或从适当的凭据存储中读取密码,切勿将其带入文件中。
还有一个更诚实的限制:一个全新的、未签名的 EXE,在其内部解码和运行文本,其形状与真正的恶意软件交付相同,因此防病毒软件和 SmartScreen 可能会标记您转换后的文件,即使您的脚本是干净的。诚实的修复是身份,而不是技巧:填写第 5 步中的版本信息,每次从同一位置分发文件,如果您定期共享工具,则使用代码签名证书对其进行签名。切勿通过告诉用户禁用防病毒软件来回应警告。
🏷️Topic Search Variables & Keywords
🎙️ 完整文字记录 — 点击展开
使用免费的 PS2EXE 模块将 PowerShell 脚本 (.ps1) 转换为双击 EXE:安装、Invoke-PS2EXE 命令、GUI、图标、版本和管理选项,以及诚实的限制。
分步故障排除指南和解决方案 - 将 PowerShell 脚本转换为软件。技术安叔屏幕演示。
(转录在源页面上结束)
❓ 常见问题(英文)
本教程 100% 免费学习吗?
是的!技术安数演示的所有指南和方法均使用免费、合法的教育资源。
初学者可以遵循本指南吗?
绝对是!每个步骤都在屏幕上演示并附有详细说明,以便任何人都可以轻松遵循。
如果遇到困难我可以在哪里提问?
直接在 YouTube 视频上发表评论,我们的社区和技术安树将为您提供帮助。
🚀 在 YouTube 上观看完整教程
🚀 在 YouTube 上观看完整的分步视频教程:https://www.youtube.com/watch?v=F2xMkbJi4wk
订阅技术安数以获取 IT 支持、Windows 故障排除和服务器管理。
▶️观看完整视频