You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Ubuntu 22.04.2 LTS系统上将PowerShell脚本(.ps1)转换为Windows可执行文件(.EXE)时遇平台不支持错误

在Ubuntu 22.04.2 LTS系统上将PowerShell脚本(.ps1)转换为Windows可执行文件(.EXE)时遇平台不支持错误

我明白你遇到的困扰了——在Ubuntu上用ps2exe转换PowerShell脚本到EXE时触发了平台不支持的错误,这其实是工具本身的特性限制导致的,咱们来拆解下原因和可行的解决办法:

错误原因分析

ps2exe这个工具的核心原理是依赖Windows平台专属的.NET Framework来编译生成Windows可执行文件(.EXE)。而你在Ubuntu上安装的PowerShell是基于跨平台的.NET Core/.NET 5+运行时的,其中CompileAssemblyFromSource这个关键编译方法在非Windows环境下是被禁用的,这就是你看到"Operation is not supported on this platform"错误的根本原因。

可行的解决方案

方案1:直接在Windows环境下完成转换(最推荐)

既然你要生成的是Windows专属的.EXE文件,最稳妥的方式就是把你的sample.ps1脚本复制到一台Windows机器上:

  1. 在Windows上安装PowerShell(如果还没装的话)
  2. 执行Install-Module -Name ps2exe安装ps2exe模块
  3. 运行转换命令:ps2exe -OutputFile sample.exe sample.ps1
    这个方法完全适配ps2exe的设计逻辑,不会有平台兼容性问题。

方案2:在Ubuntu上用Wine模拟Windows环境

如果你不想切换到Windows机器,可以借助Wine在Ubuntu上模拟Windows运行环境来执行ps2exe:

  1. 安装Wine:
    sudo apt update && sudo apt install wine64
    
  2. 下载Windows版本的PowerShell安装包(对应版本的.msi文件)
  3. 用Wine安装PowerShell:
    wine64 powershell-<version>-win-x64.msi
    
  4. 启动Wine里的PowerShell:
    wine64 powershell
    
  5. 在Wine的PowerShell会话里安装ps2exe并执行转换命令:
    Install-Module -Name ps2exe
    ps2exe -OutputFile sample.exe sample.ps1
    

方案3:尝试跨平台打包工具替代(需调整脚本)

如果你的脚本逻辑比较简单,可以尝试用.NET的dotnet publish命令来打包,但需要把PowerShell脚本转换成.NET兼容的代码,或者使用支持跨平台的打包工具。不过这种方式的学习成本较高,且不一定能完美复刻ps2exe的行为,所以优先推荐前两个方案。

备注:内容来源于stack exchange,提问作者Jaskaran Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 09:54:33