首页 > 解决方案 > 阻止用户使用 Runinvoker 命令运行需要管理员权限的应用程序

问题描述

我在一家公司担任 IT 人员。我想知道是否有办法阻止用户使用以下命令来启动需要管理员权限的应用程序。

cmd /min /C “set __COMPAT_LAYER=RUNASINVOKER && start “” %1″

RunAsInvoker 所做的是忽略应用程序清单中的任何提升请求。

标签: securitycommand-lineuacgroup-policygpo

解决方案


__COMPAT_LAYER环境变量设置为RunAsInvoker并不意味着程序将在没有 UAC 提示的情况下自动运行提升。这意味着即使可执行文件有一个清单指定它应该以管理员身份运行,它也不会提示输入管理凭据。

资料来源:RunAsInvoker 是秘密的,甚至更高的 UAC 设置吗?

摘抄:

实际上,RunAsInvoker是一个秘密,甚至更低的UAC 设置。

所做的是RunAsInvoker忽略应用程序清单中的任何提升请求,并将清单视为已说过

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

这是默认行为。该程序只是以与启动它的代码相同的权限运行。没有尝试提升。

这意味着,如果您从提升的命令提示符运行程序,则程序将保持提升状态。如果您从非提升命令提示符运行程序,则程序保持非提升。


推荐阅读