如何在windows10中对特定应用禁用UAC提示?

时间:2020-01-09 10:46:38  来源:igfitidea点击:

在本文中,我们将展示如何有选择地禁用特定应用程序的UAC,而不完全禁用用户帐户控制服务。考虑使用 RunAsInvoker兼容性标志关闭一个应用程序的UAC的几种方法。

用户帐户控制要求用户确认任何需要管理员权限的操作。这是一种相当有效的机制,可以保护Windows免受多种威胁(病毒、特洛伊木马、蠕虫、rootkit等)。一些用户觉得弹出的UAC窗口很烦人,他们更喜欢禁用这个安全特性,尽管微软和安全专家强烈建议不要这样做。

RunAsInvoker标志允许我们使用从父进程继承的标记运行应用程序。这将取消应用程序列表的处理和安装程序进程的发现。此参数不提供管理员权限,但仅绕过UAC提示。

例如,我们将禁用注册表编辑器( regedit.exe). 尽管我的帐户具有本地管理员权限,但当我运行该实用程序时,仍会出现一个UAC请求来确认启动。

如果程序需要管理员权限,因为它更改了系统设置或者文件,则禁用UAC后,应用程序中的用户权限不会提升。程序仍将在当前用户权限下运行,如果我们没有权限进行这些更改,程序将无法进行更改。还有少数应用程序只在“以管理员身份”模式运行,忽略了RunAsInvoker兼容性标志。

使用应用兼容性工具箱对程序禁用UAC

我们需要安装应用程序兼容性工具包,它是WindowsADK的一部分。在这里下载最新版本的WindowsADK for Windows10.

运行adksetup.exe文件和安装过程中(程序需要访问Internet),只选择 应用程序兼容性工具项目

Microsoft应用程序兼容性工具是一套免费工具,用于在迁移到新的Windows版本时修复应用程序兼容性问题。

系统中有两个版本的 应用程序兼容性管理员——32位和64位。根据要禁用UAC请求的应用程序位运行Application Compatibility Administrator版本。

以管理员权限运行兼容性管理员(32位) (!). 在 自定义数据库节点,右击 新建数据库,选择 新建->应用修复

在下面的窗口中,输入应用程序的名称(regedit)、供应商名称(Microsoft)和可执行文件的路径(C:\Windows\System32\注册表).

下一步,跳过配置向导的下一个窗口(兼容模式)。在 兼容性修复窗口中,选中 RunAsInvoker选项。

我们可以通过按 测试运行按钮来确保应用程序可以在没有UAC的情况下运行。

匹配信息对话框中,我们可以指定要检查哪些应用程序参数(版本、校验和、大小等)。为了避免在下一次Windows10更新后重新创建兼容性补丁文件,我保留了名、产品名和原始文件名选项。

提示。为了防止黑客欺骗可执行文件,我们可以在运行文件时请求额外的检查(例如,校验和、文件版本或者文件大小验证等)。需要注意的是,添加的检查会减慢应用程序的启动速度

单击 完成并指定兼容性修复包必须保存到的文件名,例如: regedit.sdb版. 此文件将包含使用指定的兼容性选项启动应用程序的说明。

现在我们只需将兼容性修复程序包应用于我们的应用程序。我们可以从兼容性管理员控制台(在菜单中选择安装)或者从命令提示符执行此操作。

为此,请运行提升的命令提示符并执行以下命令:

sdbinst -q c:\ps\regedit.sdb

如果操作正确,将显示一条成功安装软件包的消息。

Installation of regedit complete.