[英]Grant IUSR Rights to Use PowerShell Stop-Process Command?
我有一个 PHP 脚本,它通过shell_exec()
运行 Powershell Stop-Process
命令。 PHP 作为 IUSR 运行。 当我运行脚本时,我收到一条拒绝访问的错误消息。 如果我使用我的管理员帐户在 PowerShell 中运行该命令,它会按预期工作。
如何授予 IUSR 在 Powershell 中执行Stop-Process
的能力?
我无法找到一种解决方案来授予 IUSR 执行Stop-Process
的特定权限,但我能够通过将与Stop-Process
脚本关联的“匿名身份验证”用户从IUSR
更改为Administrator
。
在 IIS 8.5 中,转到站点->我的站点->文件夹名称。 在主面板上,单击IIS下的身份验证。 右键单击匿名身份验证,然后单击编辑。
您可以在 IIS 应用程序的任何级别设置“匿名身份验证”值; 从站点级别到子目录级别。 我建议只将实际托管终止脚本的目录中的值从IUSR
更改为Administrator
。 为整个站点更改它可能会给应用程序的其他部分带来问题。
我看到一些信息表明,如果您将受限用户添加到Performance Monitor Users
组并授予它调试权限,它将能够终止进程。
不过,您可能会考虑一些风险较小的事情,例如以具有这些权限的用户身份运行另一个 Web 应用程序,该应用程序只能从本地计算机访问。 然后让您的 PHP 应用程序向内部应用程序发出 Web 请求以完成它的杀戮。
如果您只想终止特定进程,这可以让您进一步限制影响,因为内部应用程序可以设计为仅终止该一件事。
实现类似分离的其他方法是,例如有一个计划任务,它在特定目录中查找具有特定内容的文件,当它看到它时,它会终止一个进程并删除该文件。 IUSR
可以被授予在该目录中创建文件的权限,作为触发此操作的一种方式。 这种方法很容易实现,但不是同步的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.