You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Server 2016 IIS应用池本地账户无法访问服务控制管理器

问题分析与解决方案

当自定义本地账户作为IIS应用池身份时,调用System.ServiceProcess.ServiceController.GetServices()出现SCM访问拒绝错误,而ApplicationPoolIdentity可正常运行,核心原因是自定义账户缺少了ApplicationPoolIdentity默认具备的关键权限,具体如下:

缺失的关键权限(需在本地组策略「用户权限分配」中添加)

  • Impersonate a client after authentication(SeImpersonatePrivilege):IIS应用池进程需要模拟客户端身份完成服务控制操作,ApplicationPoolIdentity默认继承此权限,自定义账户需显式添加。
  • Create global objects(SeCreateGlobalPrivilege):服务控制管理器(SCM)及相关服务操作依赖全局对象,ApplicationPoolIdentity默认拥有此权限,自定义本地账户需手动授予。

额外验证项

  1. 注册表读取权限
    确保自定义账户对注册表路径HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services拥有读取权限:

    • 打开注册表编辑器(regedit),定位到该路径。
    • 右键选择「权限」,添加自定义账户并授予「读取」权限。
  2. SCM安全权限验证
    打开管理员权限的命令提示符,执行命令sc sdshow scmanager,查看输出的安全描述符,确保自定义账户所属的组(如Authenticated Users)包含CCLCSWLOCRRC权限(允许读取和列出服务)。默认SCM权限包含对Authenticated Users的读取授权,若被修改,可通过sc sdset scmanager命令恢复默认设置(操作前建议备份当前权限配置)。

注意事项

即使将自定义账户加入管理员组,也可能因UAC限制或权限继承问题导致权限未生效,添加上述权限后,需重启IIS应用池及服务器确保权限生效。

内容的提问来源于stack exchange,提问作者Mark Henneman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 07:33:23