WIX创建定时任务

5
我正在尝试使用WIX创建一个计划任务,我希望该任务在另一个域中以特定用户身份运行。
我通过属性[Service.User]和[Service.Password]传递我的用户。
以下是我的代码:
<InstallExecuteSequence>
  <Custom Action="CreateScheduledTask" After="InstallFiles">NOT Installed</Custom>
  <Custom Action="CreateScheduledTaskId" After="CostFinalize">NOT Installed </Custom>
  <Custom Action="DeleteScheduledTaskId" After="CostFinalize">Installed</Custom>
  <Custom Action="DeleteScheduledTask" Before="RemoveFiles">Installed </Custom>
</InstallExecuteSequence>

<!--Create CcsReturnProcess Scheduled Task-->
<CustomAction Id="CreateScheduledTaskId"
               Property="CreateScheduledTask"
              Return="check"
              Execute="immediate"
               Value="&quot;[SystemFolder]SCHTASKS.EXE&quot; /CREATE /SC DAILY /MO 1 /ST 10:00 /TN &quot;CcsReturnProcess&quot; /TR &quot;&quot;[INSTALLFOLDER]CcsReturnProcess.exe&quot;&quot; /RU &quot;[Service.User]&quot; /RP &quot;[Service.Password]&quot; /RL HIGHEST" />

<CustomAction Id="CreateScheduledTask"
    Return="check"
    Impersonate="no"
    Execute="deferred"
    BinaryKey="WixCA"
    DllEntry="CAQuietExec" />

<!--Delete CcsReturnProcess Scheduled Task-->
<CustomAction Id="DeleteScheduledTaskId"
              Property="DeleteScheduledTask"
              Return="check"
              Execute="immediate"
              Value="&quot;[SystemFolder]SCHTASKS.EXE&quot; /DELETE /TN &quot;CcsReturnProcess&quot; /F" />

<CustomAction Id="DeleteScheduledTask"
    Return="check"
    Impersonate="no"
    Execute="deferred"
    BinaryKey="WixCA"
    DllEntry="CAQuietExec" />
Trying the below does not work either.

   <CustomAction Id="CreateScheduledTaskId"
               Property="CreateScheduledTask"
              Return="check"
              Execute="immediate"
               Value="&quot;[SystemFolder]SCHTASKS.EXE&quot; /CREATE /SC DAILY /MO 1 /ST 10:00 /TN &quot;CcsReturnProcess&quot; /TR &quot;&quot;[INSTALLFOLDER]CcsReturnProcess.exe&quot;&quot; /RU &quot;[Service.Domain]\[Service.User]&quot; /RP &quot;[Service.Password]&quot; /RL HIGHEST" />

似乎我的 [Service.User] 没有被传递进来。我看了一下 msi 日志,显示用户名和密码是空的???

MSI (s) (44:E0) [16:51:48:275]: PROPERTY CHANGE: 添加 CreateScheduledTask 属性。它的值为 '"C:\windows\SysWOW64\SCHTASKS.EXE" /CREATE /SC MINUTE /MO 20 /TN "CcsReturnProcess" /TR ""D:\ScheduledTasks\CcsReturnProcess\CcsReturnProcess.exe"" /RU "" /RP "" /RL HIGHEST'。

请问有人能指导如何使其工作?
2个回答

8

用户提供给安装程序的属性必须是大写的并且是公共的。详情请参考此链接


谢谢!这解决了问题。很抱歉我没有足够的声望将您的问题标记为答案。 - james

0

CreateScheduledTaskId的/TR参数上的双引号对我造成了失败。这是我使用的已更正版本:

<CustomAction Id="CreateScheduledTaskId"
              Property="CreateScheduledTask"
              Return="check"
              Execute="immediate"
              Value="&quot;[SystemFolder]SCHTASKS.EXE&quot; /CREATE /SC DAILY /MO 1 /ST 10:00 /TN &quot;CcsReturnProcess&quot; /TR &quot;[INSTALLFOLDER]CcsReturnProcess.exe&quot; /RU &quot;[Service.User]&quot; /RP &quot;[Service.Password]&quot; /RL HIGHEST" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接