同时,视可执行文件是普通 .exe、Mmc.exe 还是 COM 对象而定,自动提升还有一些附加规则 。如果 .exe 种类的 Windows 可执行文件(如前面所定义)在其清单中指定了 autoElevate 属性,这些可执行文件将会自动提升 。应用程序也将在该清单中向 UAC 指明它们需要管理权限 。此处的 Sysinternals Sigcheck 实用工具通过命令“sigcheck –m %systemroot%/system32/taskmgr.exe”来转储任务管理器 (Taskmgr.exe) 的清单,该清单显示任务管理器已加入自动提升,如图 4 所示 。
在目录树中查找自动提升可执行文件的一种简便方法是,通过如下所示的命令使用 Sysinternals Strings 实用工具:
strings –s *.exe | findstr /i autoelevate
还有一个硬编码列表,其中包含获得自动提升处理的 Windows 可执行文件 。这些 Windows 可执行文件也并非是 Windows 7 附带的内部文件,因此它们必须能够在 autoexecute 属性会导致错误的旧版系统上运行 。列表中包括 Migwiz.exe(迁移向导)、Pkgmgr.exe(程序包管理器)和 Spinstall.exe(Service Pack 安装程序) 。
将对 Microsoft 管理控制台 Mmc.exe 进行特殊处理,因为它承载了多个以 DLL 形式实现的系统管理管理单元 。Mmc.exe 通过命令行启动,该命令行指定一个 .MSC 文件,其中列出要加载的管理单元 MMC 。Mmc.exe 将在通过 PA 帐户启动时请求管理权限,当 Windows 发现这一点时,它将验证 Mmc.exe 是否为 Windows 可执行文件,然后检查 .MSC 。为了获得自动提升资格,.MSC 文件必须满足 Windows 可执行文件条件(由 Windows 在安全的位置中签名),并且必须列在自动提升 .MSC 的内部列表中 。该列表实际上包括 Windows 附带的所有 .MSC 文件 。
最后,COM 对象可以通过创建一个名为 Elevation 的子项(其名为 Enabled 的值设置为 1),利用其注册表项中的注册表值来指定需要管理权限 。图 5 显示了外壳的“复制”/“移动”/“重命名”/“删除”/“链接”对象的注册表项,当用户对其帐户没有权限访问的位置执行文件系统操作时,资源管理器将使用该对象 。
文章插图
要使 COM 对象能够自动提升,它还必须是 Windows 可执行文件,并且必须已由 Windows 可执行文件进行实例化 。(不过,无需将实例化可执行文件标记为自动提升 。)例如,当您使用资源管理器通过 PA 帐户在 %ProgramFiles% 目录中创建目录时,操作将会自动提升,因为 COM 对象请求了提升、对象的 DLL 是 Windows 可执行文件,并且资源管理器是 Windows 可执行文件 。
自动提升与UAC 的目标:
那么,所有特殊自动提升规则背后的原理是什么?选择要自动提升哪些程序以及不自动提升哪些程序是由以下问题确定的:“应用程序开发人员是否能够利用自动提升无意间或不费力地依赖于管理权限?”由于可以使用 Cmd.exe 通过命令行参数来执行批处理脚本,并且普通用户不需要以提升方式运行命令提示符(大多数用户甚至不知道命令提示符是什么),因此未将 Cmd.exe 列入自动提升的清单 。同样,承载控制面板插件的可执行文件 Rundll32.exe 在 Windows 7 的最终版本中也未自动提升,因为对于任何常见管理任务而言,并不需要对其进行提升,并且,如果 Rundll32.exe 进行了自动提升,则它通过命令行承载任意 DLL 的能力将会导致开发人员要求使用管理员权限,而自己却未意识到 。
自 Windows Vista 测试版发布以来,最终用户一直在要求 Windows 提供一种向自动提升列表中添加任意应用程序的方法 。经常被提及的原因是:他们常用的某个第三方应用程序强制他们不断单击提升权限提示,而这已经成为他们日常工作的一部分 。就像 Windows Vista 一样,Windows 7 并未提供这种功能 。我们理解这种操作非常繁琐,并且可能有这些应用程序无法在没有管理权限的情况下运行的合理原因,但开发人员将会避免将其代码修正为使用标准用户权限,而这样的风险太高 。即使有关哪些应用程序进行自动提升的列表只能由管理员访问,但开发人员只需更改其要求一次性提升的应用程序安装程序,就可将其应用程序添加到列表中 。作为替代,我们选择进行投资来进行培训并与应用程序开发人员密切合作,以确保其程序能够以标准用户身份正常工作 。
推荐阅读
- 孕妇可不可以吃芦柑
- 双厨狂喜什么意思?双厨狂喜出处
- 科目二靠边停车30公分技巧 靠边停车30公分技巧
- 杭长高速起点和终点 长深高速起点和终点
- 蚂蚱吃什么是益虫还是害虫 蚂蚱吃什么
- 三星手机是安卓系统吗?
- 如何选择空开?如何选择空开安数
- 网页不能复制粘贴页不能复制粘贴文字怎么办
- 北回归线有什么用 北回归线是指什么