从Windows服务

时间:2018-01-11 15:30:22

标签: wix windows-installer installer burn wix3

我正在自行安装软件。有一个正在运行的Windows服务,可以通知有软件更新。那时,它将下载我的刻录exe并执行process.start以静默方式安装它。除了一个问题之外,安装程序按预期工作 - 由于登录失败,它安装的服务将无法启动。如果我更改了服务中的服务密码,该服务将启动,因此我相信该问题可以解决服务帐户密码问题。这就是问题 - 如果我从交互式桌面(登录用户)在完全相同的机器上运行完全相同的安装程序,它就可以工作!

以下是我安装的服务之一:

<ServiceInstall
    Id="DataAcquisitionInstaller"
    Type="ownProcess"
    Name="DataAcquisitionService"
    DisplayName="Data Acquisition Service"
    Description="Handles all data acquisitions"
    Start="demand"
    Account="[SERVICEACCOUNTUSERID]"
    Password="[SERVICEACCOUNTPASSWORD]"
    ErrorControl="normal"
>
<util:PermissionEx
  User="[SERVICEACCOUNTUSERID]"
  GenericAll="yes"
  ServiceChangeConfig="yes"
  ServiceEnumerateDependents="yes"
  ChangePermission="yes"
  ServiceInterrogate="yes"
  ServicePauseContinue="yes"
  ServiceQueryConfig="yes"
  ServiceQueryStatus="yes"
  ServiceStart="yes"
  ServiceStop="yes" />
    <ServiceConfig DelayedAutoStart="yes" OnInstall="yes" OnReinstall="yes"/>
</ServiceInstall>

我已在日志中验证了SERVICEACCOUNTUSERID和SERVICEACCOUNTPASSWORD是否正确。我能在日志中看到的唯一区别是:

从服务安装时:

  

MSI(s)(30:80)[10:05:28:905]:执行操作:   ServiceInstall(名称= DataAcquisitionService,显示名称=数据   采集服务,ImagePath =“C:\ Program Files   (86)\ XXX \ XXX \服务\ DataAcquisitionService.exe”,服务类型= 16,StartType = 3,ErrorControl = 1,...,依赖= [〜]的 [〜],TAGID = 0 下,StartName = \测试,密码= **********,描述=把手   所有数据采集, SecurityDescriptor = BinaryData ,)

以登录用户身份从交互式桌面安装

  

MSI(s)(44:E8)[09:45:57:518]:执行操作:   ServiceInstall(名称= DataAcquisitionService,显示名称=数据   采集服务,ImagePath =“C:\ Program Files   (86)\ XXX \ XXX \服务\ DataAcquisitionService.exe”,服务类型= 16,StartType = 3,ErrorControl = 1,...,依赖= [〜] ,, StartName = \测试,密码= ******* ***,描述=把手   所有数据采集,)

这是什么意思 - &gt; “SecurityDescriptor = BinaryData”?这是导致我的问题的原因,如果是,我该如何解决?

感谢。

0 个答案:

没有答案