我一直试图让我的.msi在我的机器上安装服务。我使用exe4j制作我的Java代码,存档在.jar文件中,以便将其保存在.exe文件中。该服务需要具有跨网络读写的权限。我设法让它全部工作,除了当ServiceInstall元素中的帐户设置为'NT AUTHORITY \ NetworkService'时,服务没有读写权限。
public static void main(String[] args)
{
try
{
MainService instance = new MainService();
instance.processArgs(args);
watcher.run();
}
catch(Exception e)
{
error(e.getMessage());
e.printStackTrace();
}
System.exit(1); // only get here after an exception
}
这是我的一些WiX代码
<File Name="tService.exe" Source="tService.exe" KeyPath="yes" />
<ServiceInstall Id="ServiceID" Description="Copies assets" ErrorControl="normal" Name="tService" Start="demand" Interactive="no" Type="ownProcess" Account="NT AUTHORITY\NetworkService" />
<ServiceControl Id="StartService" Stop="both" Remove="uninstall" Name="InterConnectService" Wait="yes" />
我需要什么帐户?如何获得我的服务的读写权限?我希望.msi文件安装具有这些读写权限的服务。我不想手动开始创建帐户。
'NetworkService'在安装时失败,msi“服务...无法安装。验证您是否具有足够的权限来安装系统服务”。当我使用'NT AUTHORITY \ NetworkService'时,安装过程正常。但是使用'NT AUTHORITY \ NetworkService',我无法通过网络读取或写入。
我是如何通过网络读写的?非常感谢您的回复。
答案 0 :(得分:1)
正如Rob所说,了解您的安装是否失败或者是否未设置权限将会很有帮助。但是,您可以尝试这样做:在@Account属性中只放置'NetworkService',而不是完整的'domain \ account'值。 'NetworkService'是WiX工具集为众所周知的帐户提供的别名之一 - 它将正确映射到正确的帐户。
答案 1 :(得分:-1)
服务帐户的名称有误,需要NT AUTHORITY\Network Service
。