2016-08-22 7 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: 

唯一の新しいスケジュールされたタスクを作成すると特異的に問題を抱えているようですスケジュールされたタスクを削除するようにバッチを変更すると、エラーなしで実行されるためです。だから私の質問は:どのように私はこの1回のタスクを実行するようにスケジュールできますか?また、バッチファイルを単独で実行すると、アンインストーラによって呼び出されたときに問題が発生します。

私は運がないという特定のエラーでグーグルを試してみました。

私は実際のユースケースを簡略化しているので、単にschtasksコマンドをインストーラのExecCommandに移動するだけではなく、バッチファイル内に存在する必要があります(実際には実行可能ファイル内に存在しますが、例が簡単です)

+1

/RU "SYSTEM"をcmdに追加できます。私はschtasksを実行したことはありませんが、それは動作する可能性がありますか?マシンにログインしたユーザーとシステムコンテキストの下でタスクを実行しているユーザーの間に混乱があるようです。 –

+0

@BrianSutherlandそれはやっているようでした。あなたが答えとして投稿するなら、私はそれを受け入れるでしょう。 –

答えて

1

/RU "SYSTEM"をcmdに追加できます。私はschtasksを実行したことはありませんが、それは動作する可能性がありますか?マシンにログインしたユーザーとシステムコンテキストの下でタスクを実行しているユーザーの間に混乱があるようです。

関連する問題