授予 IUSR 使用 PowerShell 停止进程命令的权限?

Grant IUSR Rights to Use PowerShell Stop-Process Command?

我有一个 PHP 脚本,它 运行 是一个通过 shell_exec() 的 Powershell Stop-Process 命令。 PHP 运行s 作为 IUSR。当我 运行 脚本时,我收到拒绝访问的错误消息。如果我 运行 使用我的管理员帐户在 PowerShell 中执行命令,它会按预期工作。

如何授予 IUSR 在 Powershell 中执行 Stop-Process 的能力?

我看到一些信息表明,如果您将受限用户添加到 Performance Monitor Users 组并授予其调试权限,它将能够终止进程。

您可能会考虑一些风险较小的事情,例如 运行 作为具有这些权限的用户的另一个 Web 应用程序,只能从本地计算机访问。然后让您的 PHP 应用程序向内部应用程序发出 Web 请求以完成它。

如果您只想终止一个特定进程,这可以让您进一步限制影响,因为内部应用程序可以设计为仅终止那个进程。

实现类似分离的其他方法是有一个计划任务,例如在特定目录中查找具有特定内容的文件,当它看到它时,它会终止进程并删除文件。 IUSR 可以被授予在该目录中创建文件的权限,作为触发此操作的一种方式。这种方法很容易实现,但不是同步的。

我无法找到授予 IUSR 执行 Stop-Process 特定权限的解决方案,但我可以通过更改与 kill 脚本关联的 "Anonymous Authentication" 用户来解决这个问题从 IUSRAdministrator

在 IIS 8.5 中,转到站点->我的站点->文件夹名称。在主面板上,单击 IIS 下的 Authentication。右键单击 Anonymous Authentication,然后单击 Edit

您可以在 IIS 应用程序的任何级别设置 "Anonymous Authentication" 值;从站点级别到子目录级别。我建议仅在实际托管终止脚本的目录中将值从 IUSR 更改为 Administrator。为整个站点更改它可能会给应用程序的其他部分带来问题。