Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wix 使用自定义操作进行PerUser安装-禁用UAC_Wix_Uac_Dpinst - Fatal编程技术网

Wix 使用自定义操作进行PerUser安装-禁用UAC

Wix 使用自定义操作进行PerUser安装-禁用UAC,wix,uac,dpinst,Wix,Uac,Dpinst,我正在使用WiX生成一个MSI,该MSI在用户基础上安装一个浏览器插件。我有一个自定义操作,可以使用DPInst安装驱动程序(需要提升权限) UAC启用时,安装工作正常;Windows显示提升提示。但是,如果我禁用UAC并尝试在普通用户帐户上安装,dpinst.exe将生成,直到计算机冻结。(上次统计时大约有一千次) 在中,我有: 未安装 我的自定义操作是: 我有Return='ignore',因为据我所知,dpinst.exe总是 当UAC被禁用时,如何确保自定义操作正确失败?请注意,当驱动

我正在使用WiX生成一个MSI,该MSI在用户基础上安装一个浏览器插件。我有一个自定义操作,可以使用DPInst安装驱动程序(需要提升权限)

UAC启用时,安装工作正常;Windows显示提升提示。但是,如果我禁用UAC并尝试在普通用户帐户上安装,dpinst.exe将生成,直到计算机冻结。(上次统计时大约有一千次)

中,我有:
未安装

我的自定义操作是:

我有
Return='ignore'
,因为据我所知,dpinst.exe总是

当UAC被禁用时,如何确保自定义操作正确失败?请注意,当驱动程序安装失败时,我是否可以向用户显示自定义消息

进一步信息:我目前正在Windows7上开发,但目标是WinXP和更高版本

编辑查看安装日志这些似乎是相关的行:

Executing op: CacheSizeFlush(,)
Executing op: ActionStart(Name=Install_Drivers,,)
Executing op: CustomActionSchedule(Action=Install_Drivers,ActionType=3170,Source=C:\long_redacted\Drivers\,Target="C:\long_redacted_path\Drivers\DPinst.exe" /SW /SA,)
Disallowing shutdown.  Shutdown counter: 0
CustomAction Install_Drivers returned actual error code 1073807364 but will be translated to success due to continue marking

我相信,关机的关键是当我注销时停止安装。(取消似乎没有任何效果)。

尝试在“CustomAction”元素上设置“Impersonate=no”属性,如下所示:

<CustomAction Id='Install_Drivers' Execute='deferred' Directory='DRIVERS' ExeCommand='[DRIVERS]DPinst.exe" /SW /SA' Return='ignore' Impersonate="no"  />


另请注意:您的execomand中有一个错误的双引号安装驱动程序本质上是每台机器的操作。有限的用户无法做到这一点。因此,如果UAC被禁用,它将不起作用。DPInst显然没有得到它没有权限并且无法获得权限的提示。听起来像是DPInst中的一个bug。您应该将安装程序更改为每台计算机,并在Privileged属性上添加启动条件,以防止安装程序为没有UAC的有限用户启动。

谢谢,缺少的报价是一个复制错误。不幸的是,添加Impersonate=“no”并没有解决这个问题。(虽然在我注销之前它只有200个dpinst.exe进程!)。不过,我对问题进行了编辑,纳入了你的建议。我错误地认为“否”是默认值。谢谢。我知道安装驱动程序是每台机器的操作。但是,我打算在用户配置文件中安装浏览器插件。听起来好像和dpinst有同样的经历。如果是这样的话,那看起来是一个相当糟糕的错误。听起来很糟糕,是的。添加特权启动条件以确保有限用户不能进入这种状态。