更新:最初的问题是针对Windows Server 2008的,但对于Windows Server 2008 R2和Windows Server 2012(以及Windows 7和8),该解决方案更容易。您可以通过直接在NTFS用户界面中输入用户来添加用户。该名称的格式为IIS APPPOOL \ {应用程序池名称}。例如:IIS APPPOOL \ DefaultAppPool。
IIS APPPOOL\{app pool name}
注意:根据以下评论,有两件事要注意:
- 直接在“选择用户或组”中而不是在搜索字段中输入字符串。
- 在域环境中,需要首先将“位置”设置为本地计算机。
对Microsoft Docs文章的引用:应用程序池标识>保护资源
原始回复:(对于Windows Server 2008)这是一个很棒的功能,但是正如您提到的那样,它尚未完全实现。您可以从命令提示符添加带有icacls之类的应用程序池标识,然后可以从GUI管理它。例如,在命令提示符下运行以下命令:
icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)
然后,在Windows资源管理器中,转到wwwroot文件夹并编辑安全权限。您将看到一个名为DefaultAppPool的组(组图标)。现在,您可以编辑权限。
但是,您根本不需要使用它。如果您愿意,可以使用它。您可以使用旧的方法来为每个应用程序池创建自定义用户,并将该自定义用户分配给磁盘。具有完整的UI支持。
这种SID注入方法很好,因为它允许您使用一个用户,但是将每个站点彼此完全隔离,而不必为每个应用程序池创建唯一的用户。令人印象深刻,并且在UI支持下甚至会更好。
注意:如果找不到应用程序池用户,请检查名为Application Host Helper Service的Windows服务是否正在运行。该服务将应用程序池用户映射到Windows帐户。