【问题标题】:How to install and start a Windows Service under NetworkService account by using WiX?如何使用 WiX 在 NetworkService 帐户下安装和启动 Windows 服务?
【发布时间】:2011-01-01 11:36:08
【问题描述】:

我正在尝试创建一个 wix 安装程序以在 NetworkService 帐户下安装和启动 Windows 服务,但失败了,我得到的是“服务”()无法安装。验证您是否有足够的权限来安装系统服务。”

请指教,我的代码如下:

<Component Id="service" Guid='myguid'>
          <File Id='JobServiceEXE' Name='JobService.exe' DiskId='1' Source='mypath\JobService.exe' KeyPath='yes' />
          <ServiceControl Id="JobService" Name="[SERVICEID]" Stop="uninstall" Remove="uninstall" Wait="yes" />
          <ServiceInstall
          Id="JobService" Name="[SERVICEID]" DisplayName="[SERVICENAME]" Type="ownProcess"  Start="auto" ErrorControl="normal" Vital ='yes'
          Account="NT Authority\NetworkService"
          Description="Job Service" />
        </Component>

谢谢!

【问题讨论】:

    标签: windows installation service wix


    【解决方案1】:

    首先,您收到的消息可能是由于安全问题。您的安装程序必须由管理员运行,因为创建服务需要管理权限。您可以在 Condition 元素中检查它。

    其次,在非英文系统上使用NT Authority\NetworkService 作为帐户名将失败,因为内置帐户名已本地化。相反,请使用 Wix 专门识别并解析为正确本地化名称的普通旧 NetworkService

    【讨论】:

    • 感谢您的回复,能否告诉我如何检查 Condition 元素中的安​​全问题?我对蜡很陌生。我只是把账户名改成了NetworkService,结果还是一样。谢谢。
    【解决方案2】:

    保罗的回答不正确。根据 MSDN 文档,要指定网络服务帐户,请使用“NT AUTHORITY\NETWORK SERVICE”:

    ...帐户的名称必须是

    NT AUTHORITY\NETWORKSERVICE

    当您调用 CreateServiceChangeServiceConfig 时,无论语言环境如何...

    设置属性“ALLUSERS”以强制管理员安装。

    查看this链接了解更多信息

    【讨论】:

      【解决方案3】:

      我在 Windows 7 上一直有这个,它困扰了我很久。我通过添加来修复它

      InstallScope="perMachine"
      

      到我的包元素:

      <Package Description="..."
               Manufacturer="Microsoft Corporation"
               InstallerVersion="200"
               Languages="1033"
               Compressed="yes"
               InstallScope="perMachine"/>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-06
        • 1970-01-01
        • 2019-08-19
        • 1970-01-01
        相关资源
        最近更新 更多