Windows 7 从internet explorer安装时的UAC提示
Hi已创建一个安装程序,在用户级别安装应用程序。 当我从cab文件中提取setup.exe并在本地运行时,它不会提示我使用UAC,并且会正常安装并在用户上下文中安装 应用程序和cab是数字签名的 但是,当我使用一键式安装程序安装相同的程序时,它会提示我输入UAC并在管理上下文中安装它 有人能解释一下为什么相同的setup.exe表现不同吗 我能做些什么来避免这种情况Windows 7 从internet explorer安装时的UAC提示,windows-7,installshield,uac,one-click-web-publishing,Windows 7,Installshield,Uac,One Click Web Publishing,Hi已创建一个安装程序,在用户级别安装应用程序。 当我从cab文件中提取setup.exe并在本地运行时,它不会提示我使用UAC,并且会正常安装并在用户上下文中安装 应用程序和cab是数字签名的 但是,当我使用一键式安装程序安装相同的程序时,它会提示我输入UAC并在管理上下文中安装它 有人能解释一下为什么相同的setup.exe表现不同吗 我能做些什么来避免这种情况 我希望我的应用程序安装在用户级别,而不具有管理员权限?我猜setup.exe正在触发。从MSDN: 当检测到需要提升权限的应用程序
我希望我的应用程序安装在用户级别,而不具有管理员权限?我猜
setup.exe
正在触发。从MSDN:
当检测到需要提升权限的应用程序安装包时,系统将提示用户输入管理用户名和密码。如果用户输入有效凭据,操作将以适用的权限继续
Windows尝试检测某些安装程序(例如文件名中包含setup、install、update的应用程序),并尝试自动提升这些应用程序。Microsoft将此作为兼容性攻击:
- 大多数用户不会意识到他们应该右键单击安装应用程序并选择“以管理员身份运行”
- 更少的开发人员正确地将其安装程序标记为requireAdministrator
- 使用MSI的开发人员更少,因为MSI知道如何/何时/是否提升为管理员
asInvoker
选项添加到可执行文件的程序集清单来完成此操作:
<?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="client"
type="win32"
/>
<description>CodeJunkie Widget Installer</description>
<!-- Disable Setup elevation compatibility heuristics since we're named setup.exe -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
CodeJunkie小部件安装程序