Wix读写网络服务

时间:2011-07-05 13:20:15

标签: windows-services wix

我一直试图让我的.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',我无法通过网络读取或写入。

我是如何通过网络读写的?非常感谢您的回复。

2 个答案:

答案 0 :(得分:1)

正如Rob所说,了解您的安装是否失败或者是否未设置权限将会很有帮助。但是,您可以尝试这样做:在@Account属性中只放置'NetworkService',而不是完整的'domain \ account'值。 'NetworkService'是WiX工具集为众所周知的帐户提供的别名之一 - 它将正确映射到正确的帐户。

答案 1 :(得分:-1)

服务帐户的名称有误,需要NT AUTHORITY\Network Service