需组合策略限制域用户管理服务:禁用services.msc图形界面、封禁sc.exe等命令行工具、收紧服务对象安全描述符,三层协同实现权限控制。
要限制域用户查看或管理系统服务列表,不能靠单一策略“一键屏蔽”,而是需组合控制图形界面、命令行工具和服务对象本身的访问权限。核心目标是:让用户既打不开 services.msc,也运行不了 sc.exe 或 powershell 命令,即使能执行,查询也会因权限不足而失败。
禁用服务管理器图形界面(阻断最常用入口)
这是用户最先接触的路径,必须优先拦截:
- 编辑目标 OU 关联的 GPO,路径为:用户配置 → 管理模板 → 系统 → 管理工具
- 启用策略:“禁止使用服务”(Disable Services)
- 启用后,services.msc 从“计算机管理”中消失,Win+R 输入 services.msc 会被拦截,双击 .msc 文件也无效
- 注意:该策略仅作用于用户配置层级,对本地管理员或已登录会话中已打开的窗口无影响
封禁关键命令行与脚本工具(防绕过)
图形界面禁用后,用户仍可能通过命令行调用服务接口:
- 在同一 GPO 中,进入:用户配置 → 管理模板 → 系统 → 可执行文件的限制
- 启用“不允许运行指定的Windows应用程序”
- 点击“显示”,逐行添加以下程序名:
sc.exe
powershell.exe(若需严格管控;可后续用 AppLocker 细化脚本级规则)
cmd.exe(慎用,影响面广;建议先只封 sc.exe) - 若使用 AppLocker(推荐用于域环境),路径为:计算机配置 → 应用程序控制策略 → AppLocker → 可执行规则
- 新建“拒绝”规则,路径指定为
%SystemRoot%\System32\sc.exe,作用范围选“Domain Users”
收紧服务对象的安全描述符(底层权限控制)
即使工具可用,也可让查询返回“拒绝访问”:
- 编辑同一 GPO,路径为:计算机配置 → 策略 → Windows 设置 → 安全设置 → 系统服务
- 找到目标服务(如 Spooler、W32Time、Dhcp),右键“添加服务”输入服务名称确认
- 双击服务 → 勾选“定义此策略设置” → 点击“编辑安全性”
- 移除“Authenticated Users”和“Users”组的所有权限(特别是“读取”“查询状态”“启动”)
- 仅保留“Administrators”“SYSTEM”及必要运维组的“完全控制”或最小必要权限
- 对多个关键服务重复操作;不建议全量修改所有服务,按实际安全需求逐个加固
验证是否真正生效
策略部署后务必实测,不能只看编辑界面:
- 客户端执行
gpupdate /force,然后以标准域用户身份全新登录(用户策略需新会话) - 尝试以下操作并观察结果:
运行services.msc→ 应提示“此操作已被管理员禁止”
运行sc query winmgmt→ 应返回“拒绝访问”或“访问被拒绝”
在 PowerShell 中执行Get-Service→ 应报错,或仅列出极少数可见服务(如无人权限的服务不会出现在结果中) - 使用
gpresult /h report.html检查该用户是否命中目标 GPO,排除继承或筛选问题
不复杂但容易忽略。关键是三层协同:界面入口堵住、工具执行拦住、服务本身权限收住。










