使用 php 函数访问 cmd 命令被拒绝

Getting access is denied for cmd command using php function

我在 IIS 6 下 运行ning PHP。

当我对 运行 cmd 命令(如 exec()system())使用任何 PHP 函数时,它总是显示 "Access is denied".

甚至像 ipconfig 这样的命令也显示相同的 "access is denied" 错误。我已将所有权限授予我的项目文件夹,但它不起作用。

请让我知道它的原因。

当您使用 exec 执行某些命令时,该命令将使用 运行 IIS(在 IIS 6 上通常是 IUSR_«machine-name»)的用户帐户执行,因此您的项目的权限与此无关。

您需要做的是碰碰文件C:\Windows\System32\cmd.exe的权限并添加IUSR_«machine-name».

的权限

除此之外,您可能需要使用 CACLS 来更改访问控制列表。将 IUSR_MachineName 替换为执行 PHP 的用户的以下命令,然后执行此命令:

CACLS c:\windows\system32\cmd.exe /E /G IUSR_MachineName:F

如果出现错误且无法更改 ACL,最后的资源是先执行以下命令:

takeown /F c:\windows\system32\cmd.exe

您可能还需要为您尝试执行的命令设置正确的权限和 ACL(例如 C:\Windows\System32\schtasks.exe

注意:不过请谨慎操作。如果您有一些允许您的用户执行命令的漏洞,它可能会产生严重的后果。