在 Ubuntu 22.04.2 LTS 上将 PowerShell(.ps1)脚本转换为 Windows 可执行文件(.EXE)

在 Ubuntu 22.04.2 LTS 上将 PowerShell(.ps1)脚本转换为 Windows 可执行文件(.EXE)

我有一个 PowerShell 脚本文件 (.ps1),需要将其转换为 Windows 可执行文件 (.EXE)。以下是示例 PowerShell 脚本:

# This is a sample PowerShell script

# Define a variable
$greeting = "Hello, World!"

# Display the greeting
Write-Output $greeting

我目前正在使用 Ubuntu 22.04.2 LTS。要在 Ubuntu 上安装 PowerShell,我按照以下步骤操作并成功安装了 PowerShell,从而允许我在 Ubuntu 操作系统上运行 PowerShell 脚本:

运行以下命令安装所需的依赖项:

sudo apt-get install mono-complete
sudo wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

更新软件包列表:

sudo apt-get update

安装 PowerShell:

sudo apt-get install -y powershell

此外,你可以通过 Snap 安装 PowerShell:

sudo snap install powershell --classic

安装 PowerShell 后,我通过 PowerShell 工具安装了 PS2EXE。

Install-Module -Name ps2exe

我确信 PS2EXE 应该可以帮助我将 PowerShell 脚本转换为可执行文件。为了将 PowerShell 脚本 (sample.ps1) 转换为可执行文件 (sample.exe),我在 PowerShell 中使用了以下命令: ps2exe -OutputFile sample.exe sample.ps1

这个过程在 Windows 操作系统上无缝运行,但在 Ubuntu 操作系统上,我遇到了以下错误: 该平台不支持该操作。

PowerShell 7.3.4

PS /home/vboxuser/Documents/ocs> ps2exe -OutputFile test.exe test.ps1

PS2EXE-GUI v0.5.0.22 by Ingo Karstein, reworked and GUI support by Markus Scholtes

PowerShell Desktop environment started...


Reading input file /home/vboxuser/Documents/ocs/test.ps1

Compiling file...


MethodInvocationException: /home/vboxuser/.local/share/powershell/Modules/ps2exe/1.0.6/ps2exe.ps1:2678

Line |

2678 |      $cr = $cop.CompileAssemblyFromSource($cp, $programFrame)

     |      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     | Exception calling "CompileAssemblyFromSource" with "2" argument(s): "Operation is not supported on this platform."

Invoke-ps2exe: Output file /home/vboxuser/Documents/ocs/test.exe not written

答案1

没有 sudo 会发生什么?如果你在可写目录中,则不需要管理员权限来创建文件

相关内容