0

平台详细信息:IIS7、PHP5、Windows Server 2008 服务器名称:server1

我正在尝试使用 php 的 exec() 函数来执行具有以下命令的 .bat 文件:

winrs -r:server2 "C:\custom_functions.bat"

但是,当我执行该命令时,它不起作用。直接在 server2 上运行 custom_functions.bat 文件时,它工作正常,因此问题不太可能是我的代码。我猜它是权限错误。

当我执行 exec("whoami") 时,它以用户身份返回 "nt authority\network service"。

如果我通过 php exec() 函数(例如 exec("ipconfig") 或 exec("dir c:\"))执行任何基本的 windows 命令,它们就可以正常工作。当我尝试使用 WINRM 在远程服务器上执行命令时,问题就出现了。我也使用了 php 的 system() 函数——结果相同。

请帮忙!?

4

1 回答 1

0

要在服务器上运行命令,您需要在该服务器上获得授权。当您从提示符手动运行命令时,您可以通过您的用户帐户进行访问。

当 IIS 运行该命令时,它作为内置用户运行,该用户无权访问 server2。

我不建议让 webserver 进程访问 server2。

于 2012-09-18T18:25:31.080 回答