使用 Parallels 在 zsh 中执行 prlctl exec 时出现问题,权限被拒绝:NUL

问题描述 投票:0回答:1

在这个堆栈溢出答案中,有一个几乎适合我的解决方案。

我有一个在 Mac 上的 Parallels 之上运行的 Windows 虚拟机。

我想编写一个在 Mac 的 OS-X UNIX 类环境上运行的 python 脚本,它调用 Parallels 上的 Windows 应用程序。我试图确保代码在将其放入 python 之前从终端执行。


唯一的问题是执行后

prlctl exec myProgram.exe argument1>NUL </dev/null & MyFileThatIRun.txt

我收到以下错误:

zsh: permission denied: NUL

我尝试过 nul、NUL,我尝试过不使用 NUL 来运行。

我并不是真正 100% 理解 nul,我只是知道它让我更进一步。

有人知道如何修复 zsh: 权限被拒绝: NUL 吗?

我尝试了命令行的多种排列:

prlctl exec myProgram.exe --guest-os-type windows argument1> NUL </dev/null & MyFile
prlctl exec myProgram.exe --guest-os-type windows argument1> NUL </dev/null MyFile
prlctl exec myProgram.exe argument1> NUL </dev/null & MyFile
prlctl exec myProgram.exe argument1> NUL </dev/null MyFile 
prlctl exec myProgram.exe argument1> NUL < /dev/null & MyFile 
prlctl exec myProgram.exe argument1> NUL < /dev/null MyFile 
prlctl exec myProgram.exe argument1> NUL & MyFile 
prlctl exec myProgram.exe argument1 >NUL & MyFile

我期待 myProgram 启动并运行 MyFile。

macos zsh parallels
1个回答
0
投票

来自文档:Parallels pdf 文档parallels html 文档

prlctl exec <vm_id | vm_name> <command>

所以我上面的命令缺少虚拟机名称。 我认为默认情况如下所示

prlctl exec "Windows 11" "C:\path\to\myProgram.exe" "X:path\to\MyFile.txt"

但是这并没有完全按预期工作,因为程序找不到 myFile.txt。问题是用户不是我,所以为了纠正这个问题,我使用以下命令

prlctl exec --current-user "Windows 11" "C:\path\to\myProgram.exe" "X:path\to\MyFile.txt"

您可以使用的替代方案

prlctl exec --user <user_name> --password <password> "Windows 11" "C:\path\to\myProgram.exe"

为了发现这一切,我使用 intercavie 命令,它允许我通过终端与 cmd 提示符动态交互。

prlctl enter "Windows 11"
whoami

nt权限\系统

这不是我预期的用户,并意识到我无权访问我预期在该系统中安装的驱动器。我通过在隧道/登录到并行 VM cmd 提示符时执行以下操作发现了这一点

wmic logicaldisk get caption

更正虚拟机名称和用户名后,命令执行基本正确。 我仍然遇到权限问题,但程序现在可以找到 myfile.txt。我相信我当前的权限问题与上述无关。

© www.soinside.com 2019 - 2024. All rights reserved.