我在一家公司做IT人员。我想知道是否有一种方法可以阻止用户使用以下命令来启动需要管理员权限的应用程序。
cmd /min /C “set __COMPAT_LAYER=RUNASINVOKER && start “” %1″
RunAsInvoker所做的是忽略应用程序清单中的任何提升请求。
将__COMPAT_LAYER
环境变量设置为RunAsInvoker
并不意味着程序将在没有UAC提示的情况下自动提升运行。这意味着可执行文件不会提示管理凭据,即使它有一个指定应以管理员身份运行的清单。
来源:RunAsInvoker是一个秘密,甚至更高的UAC设置吗?
摘录:
实际上,
RunAsInvoker
是一个秘密,甚至是更低的UAC设置。
RunAsInvoker
所做的是忽略应用程序清单中的任何提升请求,并将清单视为
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
这是默认行为。该程序只是以与启动它的代码相同的权限运行。没有提升的尝试。
这意味着,如果从提升的命令提示符运行程序,则程序将保持提升状态。如果从非提升的命令提示符运行程序,则程序将保持非提升状态。