我有一个 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 会发生什么?如果你在可写目录中,则不需要管理员权限来创建文件