Я использую WiX для создания MSI, который устанавливает плагин браузера на основе perUser. У меня есть специальное действие для установки драйвера с использованием DPInst (для которого требуются повышенные привилегии).PerUser install with Custom Action - UAC отключен
Установка работает нормально, когда UAC включен; Windows показывает подсказку для подъема. Однако, если у меня отключен UAC и вы пытаетесь установить его на обычную учетную запись пользователя, dpinst.exe будет размножаться до тех пор, пока компьютер не замерзнет. (Примерно в тысячу раз).
В <InstallExecuteSequence>
у меня есть:
<Custom Action="Install_Drivers" After="InstallFiles">NOT Installed</Custom>
Мой заказ действие:
<CustomAction Id='Install_Drivers' Execute='deferred' Directory='DRIVERS' ExeCommand='"[DRIVERS]DPinst.exe" /SW /SA' Return='ignore' Impersonate='no'/>
У меня есть Return='ignore'
потому что, насколько я понимаю, до сих пор, DPInst.exe всегда returns a non-0 code.
Как я могу гарантировать правильное выполнение пользовательского действия при отключении UAC? В связанной заметке я могу показать пользовательское сообщение пользователю, когда установка драйвера завершилась неудачей?
Дополнительная информация: В настоящее время я разрабатываю Windows 7, но нацелен на 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
бит о завершении работы, я считаю, когда я вышел из системы остановки установки. (Отмена не оказывает никакого влияния).
Спасибо. Я понимаю, что установка драйвера - это работа на машине. Тем не менее, я намерен использовать плагин браузера для установки в профиле пользователей. Похоже, [этот человек] (http://stackoverflow.com/questions/10783164/dpinst-exe-behaviour-in-windows-7-with-standard-user-privilege) имел такой же опыт работы с dpinst. Это похоже на довольно плохую ошибку, если это так. – Elliott
Звучит плохо, да. Добавьте условие привилегированного запуска, чтобы гарантировать, что ограниченный пользователь не может попасть в такое состояние. –
Боб, спасибо. Это то, что я закончил делать. – Elliott