【问题标题】:How to open a batch file from php script with administrator privileges如何使用管理员权限从 php 脚本打开批处理文件
【发布时间】:2016-01-06 15:53:58
【问题描述】:
我正在我的 WAMP 测试服务器上运行 phpvirtualbox-5.0-4。
我想从 php 脚本运行以下批处理文件....需要以管理员权限打开 Windows 7 命令提示符(最好在后台模式下)
cd /
cd C:\Program Files\Oracle\VirtualBox
Vboxmanage setproperty websrvauthlibrary null
Vboxwebsrv.exe >null
感谢您的任何回答。
【问题讨论】:
标签:
php
windows
batch-file
【解决方案1】:
您将需要一些东西来启动脚本(例如 CRON 作业)。
但是你应该使用shell command 如下:
echo shell_exec("cd C:\Program Files\Oracle\VirtualBox Vboxmanage
setproperty websrvauthlibrary null Vboxwebsrv.exe >null");
从文档中,请注意:
Note:
This function is disabled when PHP is running in safe mode.
【解决方案2】:
知道了!!!!
$test = shell_exec('C:\\WINDOWS\\system32\\cmd.exe /c 2>&1 "H:\\wamp\\www\\sito2\\files batch\\fare partire phpVirtualBox.bat"');
echo "<pre>$test</pre>";
还有我的批处理文件:
@ECHO OFF
::Test If script has Admin Priviledges/is elevated
AT > NUL
IF %ERRORLEVEL% EQU 0 (
ECHO OK ! Command prompt launched...you are Administrator !
) ELSE (
ECHO you are NOT Administrator. Exiting...
PING 127.0.0.1 > NUL 2>&1
EXIT /B 1
)
cd /
cd C:\Program Files\Oracle\VirtualBox\Vboxmanage setproperty websrvauthlibrary null
C:\Program Files\Oracle\VirtualBox\Vboxwebsrv.exe >null
the result !!!
【解决方案3】:
shell_exec()
应该可以工作,但要使其工作,apache 服务器本身必须具有管理权限才能执行它。
简单地说,你必须以管理员身份启动 apache 服务器。 (在 Windows 中,以管理员身份运行选项)。那么 PHP 中的所有 exec() 命令都将具有管理权限。