OK,有问题。我的PHP脚本工作,除了1行。
这一行尝试用exec()
执行一个外部命令。
:
我试着寻找一个答案。几个网站说我必须设置警告:exec(): cannot to fork
cmd.exe
的权限。我在system32
还是syswow64
中这样做,我不确定。也不确定添加什么用户。ISUR
或用户(lime
)我从get_current_user()
。
Windows不允许我将任何用户添加到安全列表(右键单击文件,属性,安全,编辑)。
它也不会让我使用icacls cmd.exe /grant IUSR:F
(access denied in system32)(句柄在syswow64无效)
我已经添加了完整的访问权限(ISUR
, SYSTEM
, SERVICE
, NETWORK
SERVICE
, lime
, Everyone
和IIS_ISURS
)到将创建文件的文件夹。我意识到这有点小题大做了,必须删减。
我将不得不在Windows 7x64 (dev machine) &Windows Server 2012(生产)。
我发现的许多例子要么是针对以前的系统,要么没有深入到足够的细节。
有人能帮帮我吗?我需要让脚本工作。由于
您没有提供足够的信息来回答您的问题…
如果你的PHP脚本要在Windows操作系统中执行,也许你可以看看COM函数,而不是exec()。COM函数将给你更多的方式来控制你想要做的事情(也许是办公自动化?)
COM比exec()强大得多,因为它允许您控制生成的应用程序窗口本身,如果有的话。例如,您可以使用不可见窗口或最小化窗口启动新进程。
一些例子可以在PHP的exec()页面中找到。
基本上,您可以执行以下操作来运行应用程序:
$shell = new COM("WScript.Shell");
$shell->Run("notepad.exe");
$shell = null;
谷歌"php WScript。Shell"将会得到很多关于这个主题的结果。
Edit:另外,您需要将此添加到IIS web.config:
<identity impersonate="true" userName="youruser" password="yourpass"/>`
这将设置IIS在启动进程时模拟的用户。