跳转到内容

IIS 应用池身份与 NTFS 权限:能用的最小权限

核验于 2 分钟阅读

用 ApplicationPoolIdentity 只授予站点需要的 NTFS 权限,调整应用池设置而不破坏应用或扩大权限。

测试环境Standard / Datacenter · 版本号 26100.33650 · x64
E1
版本号
26100.33650
版本
Standard / Datacenter
架构
x64
支持
文档(E1)
证据
E1官方文档
核验日期
2026-10-29
测试机
IIS Manager UI 参考:VM 361 Windows 11 26H2;应用池 labpool;Server 2025 cmdlet 为 E1
页面类型
任务
IIS 管理器应用程序池:DefaultAppPool 与使用 ApplicationPoolIdentity 的 labpool。
VM 361 应用池:DefaultAppPool 与 labpool,均使用 ApplicationPoolIdentity;Lab 站点用 labpool。Windows 11 UI 参考;Server 2025 步骤 E1。

IIS 应用池默认以虚拟账户运行:IIS AppPool\<池名>(ApplicationPoolIdentity)。不用建密码;池启动时 Windows 创建 SID。

只给这个身份必要权限:

  • 站点根目录读/执行;
  • 需要写文件时,只给一个 upload/cache 目录 modify;
  • 不要给 C:\、C:\Windows 或别的站点目录。

不要用加 Everyone 或把池改成域管来“修” 401.3。

身份 用途 风险
ApplicationPoolIdentity 默认;每池虚拟账户 低;显式授 NTFS
NetworkService 遗留/域机器账户 网络身份更宽
LocalSystem Web 应用永远不要 本机完全控制
自定义本地用户 应用需要固定配置/ACL 密码/轮换负担
gMSA 域内应用、托管密码 需要 AD 设计

单机服务器,ApplicationPoolIdentity 是正确默认。

终端窗口
Import-Module WebAdministration
New-WebAppPool -Name 'labpool'
Set-ItemProperty IIS:\AppPools\labpool -Name managedRuntimeVersion -Value ''

授读/执行:

终端窗口
icacls C:\inetpub\lab /grant "IIS AppPool\labpool:(OI)(CI)RX"

只在需要处授写:

终端窗口
New-Item -ItemType Directory -Force C:\inetpub\lab\uploads | Out-Null
icacls C:\inetpub\lab\uploads /grant "IIS AppPool\labpool:(OI)(CI)M"

(OI)(CI) 作用于文件和文件夹;RX 读/执行;M 修改。除非应用真的要改 ACL/所有权,不要给 F(完全)。

终端窗口
Get-IISAppPool | Select-Object Name, State, ProcessModel
icacls C:\inetpub\lab
Invoke-WebRequest http://localhost:8080/ -UseBasicParsing | Select-Object StatusCode

401.3 是身份读不到文件。查有效 ACL,不是只看共享选项卡。500.19 是配置/权限错误,常是父 web.config 或缺模块。

设置 默认 何时改
.NET CLR 版本 v4.0 静态/Node/Python 设 No Managed Code
托管管道 Integrated 只有遗留应用用 Classic
启动模式 OnDemand 延迟敏感用 AlwaysRunning
空闲超时 20 分钟 只有必须常驻才关
定期回收 1740 分钟 低峰回收;观察内存
32 位应用 False 只有 32 位 DLL 才 True
加载用户配置文件 False 需要配置文件的加密等应用才 True

不要为了“修”内存泄漏全局关回收。找泄漏,或安排低峰回收。

  • 一个子目录失败,就给整个站点加 Everyone 读。
  • 为了上传,给站点根目录写权限;上传应指向单独目录。
  • 为了访问 UNC 共享,把池跑成域管。
  • 厂商安装器说要用 LocalSystem 就用。
  • 忘了虚拟目录用父应用池,不是自己的。

截图来自 Windows 11 26H2;labpool 是给 C:\inetpub\lab(8080)建的。Server 2025 用同一套 WebAdministration 对象模型,但角色安装仍是 E1。

来源