首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从internet explorer安装时UAC提示

从internet explorer安装时UAC提示
EN

Stack Overflow用户
提问于 2013-12-11 11:11:41
回答 1查看 905关注 0票数 0

Hi已经创建了一个安装程序,用于在用户级别安装应用程序。当我从cab文件中提取setup.exe并在本地运行时,它不会提示我输入UAC并正常安装并在用户上下文中安装。

应用程序和cab是数字签名的。

但是,当我使用单击安装程序安装相同的程序时,它会提示我输入UAC并在管理上下文中安装它。

有什么可以说明为什么同一个setup.exe的行为不同?

我该怎么做才能避免这种情况?

我希望我的应用程序安装在用户级别,没有管理权限?

EN

回答 1

Stack Overflow用户

发布于 2013-12-31 21:48:45

我猜setup.exe是在触发UAC设置兼容性启发式。来自MSDN:

用户帐户控制:检测应用程序安装并提示提升 当检测到需要提升权限的应用程序安装包时,将提示用户输入管理用户名和密码。如果用户输入有效凭据,则操作将继续使用适用的权限。

Windows试图检测某些安装程序(例如,包含安装程序、安装程序、更新文件名的应用程序),并试图自动提升它们。微软将此作为兼容性黑客:

  • 大多数用户不会意识到他们应该右键单击一个安装应用程序并选择Run作为管理员
  • 更少的开发人员正确地将安装程序标记为requireAdministrator
  • 更少的开发人员使用MSI,后者知道如何/何时/如果提升为管理员。

您可以通知Windows,您的应用程序应该以管理员身份运行而不是。为此,可以将asInvoker选项添加到可执行文件的程序集清单中:

代码语言:javascript
运行
复制
<?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>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20517548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档