深入了解Windows Vista用户帐户控制
2007-05-29 15:29:16 来源:WEB开发网映像加载器还会调用应用程序兼容性 (appcompat) 库,以查看目标可执行文件是否要求使用管理员权限。该库将查询应用程序兼容性数据库,以查看该可执行文件是否关联了 RequireAdministrator 或 RunAsInvoker 兼容性标志。
可执行文件请求得到管理权限的最常用方式是在其应用程序指令清单文件中包含一个 requestedElevationLevel 令牌。指令清单是 XML 文件,其中包含有关某个映像的补充信息。它们是在 Windows XP 中引入的,作为标识与并列 DLL 和 Microsoft .NET Framework 程序集的依赖关系的一种方式。指令清单中出现的 trustInfo 元素(可在下面的 Firewallsettings.exe 字符串转储摘录中看到)表明这是一个为 Windows Vista 编写的可执行文件,并且其中嵌套了 requestedElevationLevel 元素。该元素的 level 属性可具有以下三个值之一:asInvoker、highestAvailable 和 requireAdministrator。
xmlns=”urn:schema-microsoft-com:asm.v3”>
Level=”requireAdministrator”
uiAccess=”false”/>
不需要管理权限的可执行文件(如 Notepad.exe)指定 asInvoker 值。某些可执行文件预期管理员始终希望具有最大访问权限,因此他们使用 highestAvailable 值。如果某用户运行具有该值的可执行文件,那么仅当他在 AAM 中运行或被视为管理员(根据早先定义的规测)且必须提升以获得其管理权限时,才会要求提升他的权限。例如,Regedit.exe、Mmc.exe 和 Eventvwr.exe 都是使用 highestAvailable 的应用程序。最后,requireAdministrator 始终会导致提升请求,任何没有管理权限就无法操作的可执行文件需要使用该值。
可访问性应用程序为 uiAccess 属性指定“true”,以便驱动所提升进程的窗口输入,并且它们还必须带有签名并位于多个安全位置(包括 %SystemRoot% 和 %ProgramFiles%)之一以获取该能力。
更多精彩
赞助商链接