2016-08-22 1 views
2

У меня есть следующий XML в моем файле .wxs для запуска пакетного файла при удалении:Запуск пакетного файла, который в расписание задач с Wix на Uninstall

<InstallExecuteSequence> 
    <Custom Action="uninstall_action" After="InstallInitialize">Installed AND NOT UPGRADINGPRODUCTCODE</Custom> 
</InstallExecuteSequence> 

и

<Fragment> 
    <CustomAction 
    Id   ="uninstall_action" 
    Directory ="INSTALLDIR" 
    ExeCommand ="&quot;[INSTALLDIR]uninstallTester.bat&quot;" 
    Execute ="deferred" 
    Impersonate="no" 
    /> 
</Fragment> 

Так что должен запустить пакетный файл, расположенный в каталоге установки. Мой командный файл выглядит следующим образом:

schtasks /Create /F /SC ONCE /ST 22:05 /TN exampleUninstall /TR "echo hello" 2> batch_log.log 

Когда я бегу деинсталлятор я получаю следующее внутри batch_log.log:

ERROR: No mapping between account names and security IDs was done. 
(40,4):UserId: 

кажется, есть проблема, в частности, только с созданием нового запланированного задания , потому что, если я изменю пакет для удаления запланированной задачи, он запускается без ошибок. Поэтому мой вопрос: как я могу запланировать выполнение этой одноразовой задачи? Также будет работать рабочий пакетный файл сам по себе, он просто имеет проблему при вызове деинсталлятора.

Я также пробовал использовать эту ошибку, не повезло.

Я упростил свой фактический прецедент, поэтому я не могу просто просто перенести команду schtasks в ExecCommand в установщик, он должен жить внутри командного файла (на самом деле он будет жить внутри исполняемого файла, но я думал, что эта партия пример проще)

+1

Вы можете попробовать добавить/RU "SYSTEM" в свой cmd. Я никогда не запускал schtasks, но это может сработать? Похоже, есть некоторая путаница между пользователем, зарегистрированным на компьютере, но выполняющим задачи в системном контексте. –

+0

@BrianSutherland Это похоже на трюк. Если вы опубликуете его в качестве ответа, я соглашусь с ним. –

ответ

1

Вы можете попробовать добавить/RU "SYSTEM" в свой cmd. Я никогда не запускал schtasks, но это может сработать? Похоже, есть некоторая путаница между пользователем, зарегистрированным на компьютере, но выполняющим задачи в системном контексте.

Смежные вопросы