Tri*_*nko 273 windows-server-2008 iis-7 application-pools
在 Windows Server 2008 上的 IIS 7 中,应用程序池可以作为“ApplicationPoolIdentity”帐户而不是 NetworkService 帐户运行。
如何为此“ApplicationPoolIdentity”帐户分配权限。它不会在机器上显示为本地用户。它不会在任何地方显示为一个组。没有什么像它出现在任何地方的远程。当我浏览本地用户、组和内置帐户时,它没有出现在列表中,列表中也没有出现任何类似的内容。到底是怎么回事?
我不是唯一遇到此问题的人:请参阅IIS 7.5 + Windows 7中的ApplicationPoolIdentity问题示例。
“不幸的是,这是 Windows Server 2008/Windows Vista 上的对象选择器的一个限制——正如一些人已经发现的那样,您仍然可以使用icacls等命令行工具操作应用程序池标识的 ACL 。”
Sco*_*MVP 300
更新:最初的问题是针对 Windows Server 2008,但对于 Windows Server 2008 R2 和 Windows Server 2012(以及 Windows 7 和 8),解决方案更容易。您可以通过 NTFS UI 直接键入来添加用户。名称的格式为 IIS APPPOOL\{应用程序池名称}。例如:IIS APPPOOL\DefaultAppPool。
IIS APPPOOL\{app pool name}
Run Code Online (Sandbox Code Playgroud)
注意:根据下面的评论,有两件事需要注意:
参考 Microsoft Docs 文章:应用程序池标识 > 保护资源
原始回复:(对于 Windows Server 2008)这是一个很棒的功能,但正如您提到的,它还没有完全实现。您可以使用 icacls 之类的命令从命令提示符添加应用程序池标识,然后您可以从 GUI 管理它。例如,从命令提示符运行这样的事情:
icacls c:\inetpub\wwwroot /grant "IIS APPPOOL\DefaultAppPool":(OI)(CI)(RX)
Run Code Online (Sandbox Code Playgroud)
然后,在 Windows 资源管理器中,转到 wwwroot 文件夹并编辑安全权限。您将看到一个名为 DefaultAppPool 的组(组图标)。您现在可以编辑权限。
但是,您根本不需要使用它。如果您愿意,您可以使用它。您可以使用旧方法为每个应用程序池创建自定义用户并将自定义用户分配到磁盘。它具有完整的 UI 支持。
这种 SID 注入方法很好,因为它允许您使用单个用户但将每个站点彼此完全隔离,而不必为每个应用程序池创建唯一用户。非常令人印象深刻,如果有 UI 支持,效果会更好。
注意:如果找不到应用程序池用户,请检查名为 Application Host Helper Service 的 Windows 服务是否正在运行。它是将应用程序池用户映射到 Windows 帐户的服务。