我正在尝试创建一个wix安装程序来安装和启动NetworkService帐户下的Windows服务,但是失败了,我得到的是“Service”()无法安装。验证您是否具有足够的权限来安装系统服务。“
请指教,我的代码如下:
<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>
谢谢!
答案 0 :(得分:17)
保罗的回答是不正确的。根据MSDN文档,要指定网络服务帐户,请使用“NT AUTHORITY \ NETWORK SERVICE”:
...帐户的名称必须是
NT AUTHORITY\NETWORKSERVICE
当您调用 CreateService 或 ChangeServiceConfig 时,无论语言环境如何......
设置属性“ALLUSERS”以强制管理员安装。
请参阅this链接以获取更多信息
答案 1 :(得分:3)
首先,您收到的消息可能是由于安全问题。您的安装程序必须由管理员运行,因为创建服务需要管理权限。您可以在Condition
元素中检查该内容。
其次,在非英语系统上使用NT Authority\NetworkService
作为帐户名将失败,因为内置帐户名已本地化。相反,请使用Wix特别识别的普通旧NetworkService
并解析为正确的本地化名称。
答案 2 :(得分:1)
我在Windows 7上一直使用这个,这让我烦恼了很久。我通过添加
来修复它InstallScope="perMachine"
到我的包元素:
<Package Description="..."
Manufacturer="Microsoft Corporation"
InstallerVersion="200"
Languages="1033"
Compressed="yes"
InstallScope="perMachine"/>