授予IUSR使用PowerShell停止处理命令的权限?

时间:2015-11-11 17:03:27

标签: windows powershell windows-server-2012 windows-server

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

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

2 个答案:

答案 0 :(得分:1)

我无法找到解决方案来授予IUSR执行Stop-Process的特定权限,但我能够通过从{{更改与kill脚本相关联的“匿名身份验证”用户来解决这个问题。 1}}到IUSR

在IIS 8.5中,转到站点 - >我的站点 - >文件夹名称。在主面板上,单击 IIS 下的身份验证。右键单击匿名身份验证,然后单击编辑

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

答案 1 :(得分:0)

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

您可能会考虑一些风险稍低的东西,比如以具有这些权限的用户身份运行另一个Web应用程序,只能从本地计算机访问。然后让你的PHP应用程序向内部应用程序发出web请求以执行它的killin'。

如果你只想杀死一个特定的进程,这可以让你进一步限制影响,因为内部应用程序可能被设计为只杀死那一件事。

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