Vista UAC下应用程序标注为“需要管理员权限”的四种方法
2008-10-18 17:36:50 来源:WEB开发网在Microsoft 的UACBlog里对此有过叙述。总结如下:
首先,如果一个程序被识别为管理员程序时,Vista会在它的图标上加上一个盾牌标记。因此很容易看出来。
其次,如果UAC有效的话,管理员程序启动时会弹出执行许可或者管理员密码输入对话框。
据此你可以知道你的标注是不是成功。
方法一:文件名里包含 “Setup”, ”Install” , “Update”字样,比如 TestSetup.exe 之类的。
这个方法由UAC的本地安全策略“检测安装程序”所控制。如果该策略设置为无效,则无效。默认是有效的。 当然,这种安装包也可以强行设置为非管理员权限运行,例如软媒团队开发的酷点、闪游浏览器的安装包就是这种。
方法二:在Exe里加入manifest资源。.Net的程序好像会自动产生一个。比较新的Visual Studio 2005也会自动生成manifest.
对于比较老的Visual Studio 6以前的应用程序,可以手工编辑一个mainfest文件,然后用mt.exe 写入到exe的资源里去
(mt.exe在Visual Studio 2005或者platform SDK里有,Visual Studio 2005 Express版是免费的,可以自由下载)
Manifest文件是xml格式的文本文件。如下面的例子
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0"
processorArchitecture="x86"
name="Company.Department.Exe Name"
type="win32"/>
<description>Description of your application</description>
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
更多精彩
赞助商链接