正在加载...

2009/05/10

 

[Vista非主流]程序兼容性之特权等级

在Vista的UAC控制下,对于那些没有用到自动提权API的应用程序,如果我们要给这类程序提权就需要右键这个程序的可执行文件或者快捷方式选择“以管理员身份运行”来提权,如果我们需要常常运行那些需要手动提权的应用程序,我们可以给这个程序设置程序兼容性之特权等级:

右键选择需要操作的应用程序,选择“属性”,在“兼容性”标签卡下的“特权等级”可以勾选“请以管理员身份运行该程序”的复选框:

程序兼容性之特权等级

这就可以在日后直接双击这个应用程序便会以管理员身份来运行这个应用程序了的,但是如果将所设置的应用程序的文件移动一下位置就会发现先前的设置无效了,先前设置的“请以管理员身份运行该程序”的复选框也被取消了。这就说明Vista系统对应用程序的程序兼容性设置不是修改了应用程序本身,而是将设置记录存储在某个数据库或配置文件中的。根据观察研究进一步确定了这个设置是存储在注册表某个注册表项中的,这个注册表项位置是:

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

在这个注册表项下被设置的应用程序会在这里建立一个该应用程序的完整路径的字符串值(REG_SZ),数值内容是“RUNASADMIN”,所以当这个被设置的应用程序移动到别处,这个注册表项里的记录没有被更新,所以移动位置后的应用程序的程序兼容性下的特权等级便是没有被设置的。

关于应用程序的程序兼容性的设置也是存储在上述注册表项的上级注册表项:

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant

Vista的UAC虽然在一定程度上带来些许麻烦,但是更多带来的是安全上的增强,请不要关闭UAC来换取那一点点方便却带来更多安全隐患。

[Vista非主流]是我的关于Vista的基本使用方法、技巧、故障解决等文章的专题集合,之所以叫做非主流,和Vista与老产品XP的市占率相比较而得出的结论,Vista还是非主流产品。

标签: , ,