2016-08-22 34 views
2
與維克斯任務

我在.wxs文件中的以下XML上卸載運行的批處理文件:運行一個批處理文件,該文件的時間表上卸載

<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: 

它似乎特別有問題只與創建一個新的計劃任務,因爲如果我更改批次以刪除計劃任務,它將運行而不會出錯。所以我的問題是:我如何安排這個一次性任務運行?同時自行運行批處理文件也會起作用,它只是在卸載程序調用時遇到問題。

我也試過用google搜索沒有運氣的具體錯誤。

我簡化了我的實際使用案例,因此我不能僅僅將schtasks命令移到安裝程序中的ExecCommand中,它必須存在於批處理文件中(實際上它將存在於可執行文件中,但我認爲這批例如更容易)

+1

您可以嘗試將/ RU「SYSTEM」添加到您的cmd。我從來沒有運行schtasks,但它可能工作?聽起來好像在用戶登錄到機器但在系統環境下運行任務之間存在一些混淆。 –

+0

@BrianSutherland這似乎有伎倆。如果您將它作爲答案發布,我會接受它。 –

回答

1

您可以嘗試添加/ RU「SYSTEM」到您的cmd。我從來沒有運行schtasks,但它可能工作?聽起來好像在用戶登錄到機器但在系統環境下運行任務之間存在一些混淆。

相關問題