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

能否强制程序触发UAC验证且仅以非管理员权限运行?

能否强制程序触发UAC验证且仅以非管理员权限运行?

当然可以实现这个需求!在Windows 11 Enterprise环境下,我们可以通过几个组合策略达成你的安全目标——既限制只有管理员能启动程序,又确保程序运行时不获取elevated(高)权限。下面是具体的实现方法:

1. 利用NTFS权限限制启动权限

这是最基础的一层控制:

  • 找到目标程序的可执行文件(.exe),右键选择「属性」→「安全」标签
  • 点击「编辑」按钮,修改权限列表:
    • 保留Administrators组的「读取和执行」权限
    • 移除或拒绝其他所有用户/组(比如Users、Authenticated Users)的「读取和执行」权限
  • 点击「确定」保存设置

这样一来,非管理员用户连访问、启动该程序的权限都没有,自然无法运行;而管理员启动程序时,默认会以标准用户上下文运行(除非程序主动请求提权),刚好符合你要的“无elevated权限”要求。

2. 配置程序的Manifest文件(确保不主动提权)

如果目标程序本身带有请求提权的Manifest配置,需要修改它来强制以调用者权限运行:

  • 如果程序有内嵌Manifest:可以用资源编辑工具(比如Resource Hacker)打开程序,找到RT_MANIFEST资源,将requestedExecutionLevel节点修改为:
    <requestedExecutionLevel level="asInvoker" uiAccess="false" />
    
  • 如果没有内嵌Manifest:可以在程序同目录下创建一个同名的.exe.manifest文件,内容如上,Windows会优先读取外部Manifest

这个设置会强制程序以启动它的用户权限运行——管理员启动时就是非管理员权限,同时因为NTFS权限的限制,非管理员根本无法启动程序。

3. 用AppLocker做更精细化的控制(适合企业环境)

Windows 11 Enterprise自带的AppLocker可以实现更灵活的规则:

  • 打开「本地组策略编辑器」(运行gpedit.msc)
  • 导航到「计算机配置」→「Windows设置」→「安全设置」→「应用程序控制策略」→「AppLocker」
  • 右键「可执行规则」,选择「创建新规则」,按照向导:
    1. 选择「允许」,点击下一步
    2. 在「用户或组」里选择Administrators组,点击下一步
    3. 选择「路径」规则类型,指定目标程序的路径,点击下一步
    4. 在「例外」页面不需要设置,直接下一步
    5. 完成规则创建

同时,确保AppLocker的默认规则允许管理员运行程序,并且没有其他规则允许非管理员访问目标程序。AppLocker会强制只有管理员能启动该程序,而程序运行时的权限依然是标准用户级别。

注意事项

  • 测试时切换到非管理员账户,确认无法启动程序;用管理员账户启动后,可以通过任务管理器查看进程的完整性级别(右键进程→「属性」→「安全」标签,或者在任务管理器的「详细信息」里添加「完整性级别」列,应该显示为「中等」而非「高」)
  • 避免其他高权限进程(比如某些服务)启动该程序,必要时可以通过AppLocker或权限设置限制这类进程的访问

备注:内容来源于stack exchange,提问作者ETL

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 07:58:01