Windows 是否有“自动拒绝提升请求”列表?
如果用户是“标准用户”,有可能有 Windows自动拒绝任何提升请求通过改变ConsentPromptBehaviorUser
组策略设置自动拒绝提升请求:
Prompt for credentials on the secure desktop.
(默认) 当操作需要提升权限时,系统会在安全桌面上提示用户输入不同的用户名和密码。如果用户输入了有效的凭据,则操作将以适用的权限继续进行Prompt for credentials
当操作需要提升权限时,系统会提示用户输入管理用户名和密码。如果用户输入了有效的凭据,则操作将以适用的权限继续进行Automatically deny elevation requests
当操作需要提升权限时,将显示可配置的拒绝访问错误消息。以标准用户身份运行桌面的企业可以选择此设置以减少帮助台呼叫
这在程序可能提示提升权限的情况下很有用,但这需要服务台的人跑过三栋楼(才能进入他们的过肩他们只有在访问该站点时才会发现用户不应该运行该程序。
我们想该应用程序以标准用户身份运行(可能会拒绝访问错误),因为这是正确答案。
但该设置适用于全部提高的项目。是否有可能
- 标记一个程序,或
- 将其添加到列表中
这样它就会自动拒绝提升请求并以标准用户身份运行?
当程序被错误地执行以下任务时,就会发生问题:
requestedExecutionLevel
在requireAdministrator
其嵌入或外部清单中标记为- 已选中“以管理员身份运行此程序”兼容性选项
- 被检测为安装程序(例如,被命名
install
或setup
)通过EnableInstallerDetection
启发法
笔记: 假设应用程序没有清单,有人可能会建议添加清单以表明requestedExecutionLevel: asInvoker
。此解决方案还将禁用应用程序的文件和注册表虚拟化。
也可以看看
- 防止不需要的应用程序提升权限 (UAC) (未找到解决方案)
- 如何告诉 Windows 7 某个应用程序不需要以管理员权限运行? (针对这种情况的答案是添加一份清单)
- 如何确定应用程序提示提升的原因
答案1
一个可能的解决方案是结合使用两种策略:
配置已经提到的同意提示行为用户组策略设置自动拒绝提升请求。正如问题所说,这会影响所有运行的程序。
接下来启用用户帐户控制:仅提升已签名和验证的可执行文件策略设置。(来自 Microsoft)此设置强制对请求提升权限的任何交互式应用程序进行公钥基础结构 (PKI) 签名检查。企业管理员可以通过将证书添加到本地计算机上的受信任发布者证书存储来控制允许运行哪些应用程序。
使用您组织的密钥对所有受信任的程序进行签名,并将其发布到您组织中所有计算机上的受信任发布者证书存储区。更多信息。