使用UAC白名单让指定的程序不受UAC限制

1. 关闭UAC的隐患

        我的上一篇博文关于Windows_8.1/Windows7下普通用户运行软件提示需要输入管理员密码解决方法已经介绍过如何以普通用户身份运行某些需要提权的程序而不弹出“用户帐户控制设置”对话框,文中的方法是把UAC完全关闭了,确实可以避免烦人的“用户帐户控制”提示,但同时也降低了系统的安全级别。

        UACUser Account Control),中文翻译为用户帐户控制,是微软在Windows VistaWindows7中开始引入的新技术,主要功能是进行一些会影响系统安全的操作时,会自动触发UAC,用户确认后才能执行。因为大部分的恶意软件、***病毒、广告插件在进入计算机时都会有如:将文件复制到WindowsProgram Files等目录、安装驱动、安装ActiveX等操作,而这些操作都会触发UAC,用户都可以在UAC提示时来禁止这些程序的运行。

        能够触发UAC的操作包括:

        *修改Windows Update配置;

        *增加或删除用户帐户;

        *改变用户的帐户类型;

        *改变UAC设置;

        *安装ActiveX

        *安装或卸载程序;

        *安装设备驱动程序;

        *修改和设置家长控制;

        *修改注册表;

        *将文件移动或复制到Program Files或是Windows目录;

        *访问其他用户目录。

        所以,UAC的作用还是很大的,如果完全关闭UAC的话,系统无法协助用户阻止一些未定义的恶意软件、***的运行,用户在访问一些网站或运行一些软件时就很可能被植入而恶意的广告插件或***程序,影响系统稳定性,严重的会导致企业信息泄露。

2. 添加指定的程序到UAC白名单

  企业生产环境中一般是不会开放管理员权限给普通用户的,但某些软件既是工作必须又因为以普通用户身份运行时会触发UAC,这点确实很烦人的。各位运维伙伴们对这点应该也是深恶痛疾了吧!!

本文测试使用的系统和软件环境:

系统:Windows 8.1 64位企业版

需要加入UAC白名单的软件:顺丰速运“速打线下用户专用版”

下面介绍如何开启UAC白名单:

1步:获取微软官方的工具“Application Compatibility Toolkit”,应用程序兼容性工具箱

    进入微软官网下载站点https://www.microsoft.com/en-us/download搜索关键字:Application Compatibility Toolkit,找到下载链接点击进入下载页面,如下图:

wKioL1nOEtzAhwhYAAJodU_BTq0360.jpg

spacer.gif

点击“Download”进入下载列表页面,如下图:

spacer.gif

       选择“ApplicationCompatibilityToolkitSetup.exe”点击右下角“Next”下载。

2步:安装“Application Compatibility Toolkit

        安装前请先退出所有杀毒软件,以免软件在创建一些注册表键值时被杀毒软件拦截了。

双击刚才下载的软件图标spacer.gif出现下图:

wKioL1nOE5jxU3b7AAI3ny0f2WU853.jpg

点击“Next”按钮进入下一界面:


spacer.gif

勾选”I accept the terms in the License Agreement”,点击"Next"按钮进入下一界面:


spacer.gif

路径可以修改,我这里按默认路劲安装,继续点击“Next”按钮进入下一界面:

 

spacer.gif

点击“Install”按钮进入下一界面:

 

spacer.gif

到此安装已经完成,点击“Finish”按钮完成安装。

3步:配置UAC白名单

打开软件,如下图:

wKiom1nOWHugtwRZAAKRGjFBRlo763.jpg

注意:窗口标题显示”Compatibility Administrator(32-bit)”,要使用32-bit版本还是64-bit版本是根据你需要加入UAC白名单的软而定的,本文要添加入UAC白名单的软件“速打线下用户专用版”是32位的软件,所以这里需要打开“Compatibility Administrator(32-bit)”。

 

1)右键点击”New Database(1)[Untitled_1]”-->”Rename”,把数据库名字修改为”UAC_White_List”,如下图:

spacer.gif

提示:修改数据库名字不是必须的,但明确规范的名字会方便日后管理。

 

2)右键点击”UAC_White_List”-->”Create New”-->”Application Fix”,按实际情况修改程序名、开发商信息和程序完整安装路径,如下图:

spacer.gif

点击“下一步”按钮,进入下一界面:

 

spacer.gif

勾选“RunAsInvoker”,然后点击“下一步”按钮进入下一界面:.

 

spacer.gif

这里不用修改,直接点击“下一步”按钮进入下一界面:

 

spacer.gif

这步也不需要修改,点击“完成”按钮完成UAC白名单添加:

 

spacer.gif

提示:此步骤的数据库"UAC_White_List"可以保存为磁盘文件,方便拷贝到其它电脑直接打开使用,前提是其它电脑需要添加到UAC白名单软件都一样。

 

3)选中刚才建立的“速打线下用户专用版”,点击菜单栏的"File"à"Install”把软件信息写入系统的UAC白名单。注意:这步很重要,如果不Install的话,前面的操作就等于白做了。

 

4)测试效果

测试前先确保组策略中的“计算机配置”-->“Windows 设置”-->“安全设置”-->“本地策略”-->“安全选项”-->“用户帐户控制:以管理员批准模式运行所有管理员”选项是“开启”的,因为我之前测试的时候设置成“关闭”,默认情况该选项是开启的,没有修改过的话不用管。

spacer.gif

 

以普通用户身份登录,运行“速打线下用户专用版”,没什么意外的话,能够正常打开软件,而且没有提示需要用户输入管理员密码,到此UAC白名单设置大功告成。

spacer.gif

 

3. 从UAC白名单中清除指定应用程序

    将你需要从UAC白名单中删除的应用程序从"UAC_White_List"中删除,再运行一次"Install"就可以了。

小结:

1. UAC可以协助用户阻止一些未定义的恶意软件、***的运行,实际的生产环境中是建议开启的。

2. 生产环境中部署系统和软件都以最少权限为原则,才能最大程度保障业务系统的稳定运行。

3. 使用UAC白名单的方式让指定的程序不受UAC的限制,是比较好的方法,既可以让用户运行需要管理员批准的软件,也不必输入管理员密码或把用户加入管理员组。

4. 使用ACT(Application Compatibility Toolkit)生成的UAC白名单数据库保存为磁盘文件后,可以拷贝到其它需要添加相同软件到UAC白名单的电脑,简化了批量部署的步骤。

5. 本文的方法比较简单,但进行大规模部署时还是会比较麻烦(譬如30台或以上主机一起部署时),需要一台一台去安装和设置,还是比较耗时的。

UAC白名单改进建议:

      微软的“Application Compatibility Toolkit”可以进行应用程序兼容性评估和UAC白名单设置,是比较实用的工具,但建议微软可以把UAC白名单功能直接集成到系统中,同时支持使用域进行大规模部署,那系统管理就变得更高效方便了。

 

希望本文能帮助到各位运维伙伴,同时欢迎各位网友和技术爱好者指正文中的错误!!谢谢!!