PHP如何从vboxmanage列表runningvms获取输出
当我调用“vboxmanage list runningvms”时,我无法捕获 PHP 中的输出并回显文本。
我尝试过管道、重定向等,但没有成功。
这是代码:
$output2=null;
$retvar=null;
echo "<h3>Check for running VMs</h3>";
$output2 = shell_exec("vboxmanage.exe list runningvms");
echo "<pre>$output2</pre>";
它什么也不返回。
我也尝试过
:
$output = shell_exec("vboxmanage.exe list runningvms>runningvms.txt");
但 txt 文件是空的
b.
$output = shell_exec("vboxmanage.exe list runningvms 2>&1");
它不返回任何内容
c. 调用版本有效,
$output = shell_exec("vboxmanage.exe --version");
我得到 vbox 版本 6.0.24r139119,这是我的测试虚拟机。
我不知道这是否是 STDOUT,但我想不出另一种方法来捕获“list runningvms”的输出,
它在带有 IIS 7 的 Windows 7 上运行。我不能使用 Linux,我不能使用 Apache,我不能升级到 Windows 10。如果您发现它可以在其他操作系统中工作,这会让我嫉妒,但这并不能解决我的问题,所以请关注带有 IIS 7 的 Windows 7。
让我知道是否有另一种方法可以通过编程方式执行此操作,并且发送它到 PHP。我可以调用 Python 并发送到文本并用 PHP 读取文本文件。我会尝试这个,除非这里有人有更好的方法。
谢谢,
When I call "vboxmanage list runningvms" I can't capture the output in PHP and echo the text.
I tried piping, redirecting, etc. and no luck.
Here is the code:
$output2=null;
$retvar=null;
echo "<h3>Check for running VMs</h3>";
$output2 = shell_exec("vboxmanage.exe list runningvms");
echo "<pre>$output2</pre>";
it returns nothing.
I also tried:
a.
$output = shell_exec("vboxmanage.exe list runningvms>runningvms.txt");
but the txt file is empty
b.
$output = shell_exec("vboxmanage.exe list runningvms 2>&1");
it returns nothing
c.
Calling the version works
$output = shell_exec("vboxmanage.exe --version");
I get vbox version 6.0.24r139119 which is my test VM.
I don't know if this is STDOUT but I can't think of another way to capture the output of "list runningvms"
This is running on a Windows 7 with IIS 7. I cannot use Linux, I cannot use Apache and I cannot upgrade to Windows 10. If you find out that it works in other OSs it will make me jealous but it does not solve my problem so please focus on Windows 7 with IIS 7.
Let me know if there is another way to do this programmaticaly and send it to PHP. I could call Python and send to a text and read the text file in PHP. I will try this unless anyone here has a better way.
Thanks,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
VirtualBox VM 是特定于用户的
您必须使用与 VM 所有者相同的用户运行
list
命令。您可以尝试将多个用户添加到 VBox 管理组
VBOXUSERS
中,以便能够控制 VM。这是文章如何在 Windows 7 上执行此操作VirtualBox VMs are user-specific
You have to run
list
command using same user as VM ownerIn other way you may try to add multiple users to VBox management group
VBOXUSERS
to be able control VMs. Here is article how to do it for Windows 7