以非管理员身份运行setup.exe不会引发任何错误

时间:2018-11-30 02:30:03

标签: installation windows-installer installshield

非管理员用户尝试安装setup.exe时,应按照我们的Installshield条件抛出以下错误消息。

“您未以管理员身份登录或没有安装权限”

但是最近,当我们尝试以非管理员身份安装安装程序时,并未引发任何错误。执行Setup.exe时,没有任何反应。

条件: AdminUser AND Privileged:消息->您没有以管理员身份登录或没有安装权限

最初,我们认为某些Windows更新可能导致了此问题。但是,当我创建示例setup.exe时,它将引发错误。如何确定为什么我的setup.exe停止抛出错误消息。

注意:运行setup.exe时,%temp%文件夹中未生成任何文件。如果我们双击或,则以“以管理员身份运行”将没有任何反应。还要求提供“管理权限”。

1 个答案:

答案 0 :(得分:0)

虽然AdminUser和Privileged属性用于告诉您您的要求,但由于引入了UAC而对其进行了更改。从理论上讲,在大多数情况下,Windows Installer软件包会在InstallExecute阶段提升,而其UI将以受限用户身份运行。由于通常不会在UAC之前完成此操作(尽管可以通过广告进行),因此Microsoft更改了这些属性的行为,以实现更好的向后兼容性。

有一种方法可以请求这些属性的原始含义:将MSIUSEREALADMINDETECTION设置为1。

但是,如果您依靠它来阻止安装,则您的工作方式与Microsoft期望的不同。相反,当您没有以完全管理员权限启动安装时,应该修复所有损坏的问题,然后可以删除您的支票。如果已经没有东西坏了,那就去掉检查。如果您通过创作专门启用Windows Installer,则仅将其作为受限用户安装。 (有关最新方法,请参阅ALLUSERS,MSIINSTALLPERUSER和Single Package Authoring的其余部分,或者在此之前,请参见Word Count Summary property的第3位,将其设置为典型的0时需要提升)。

就日志记录而言,setup.exe和Windows Installer仅在通过命令行,创作或策略请求时记录日志。使用命令行(是否提升,取决于您要测试的方案),然后运行以下命令:setup.exe /debuglog /v"/l*v c:\users\me\desktop\setup.log"