Сетевая служба чтения и записи Wix - PullRequest
0 голосов
/ 05 июля 2011

Я пытался заставить мой .msi установить службу на моей машине. Я использовал exe4j для создания своего Java-кода, заархивированного в файле .jar, для его хранения в файле .exe. Служба должна иметь привилегии для чтения и записи через сети. Мне удалось заставить все это работать, за исключением того, что служба не получила привилегий на чтение и запись, когда для учетной записи установлено значение NT AUTHORITY \ NetworkService в элементе ServiceInstall.

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 ]

1 голос
/ 06 июля 2011

Как спросил Роб, будет полезно узнать, не удалась ли установка или просто не установлены разрешения.Однако в любом случае вы можете попробовать это: в атрибуте @Account укажите просто «NetworkService», а не полное значение «домен \ учетная запись».«NetworkService» - это один из псевдонимов, предоставляемых набором инструментов WiX для известных учетных записей - он будет правильно сопоставлен с соответствующей учетной записью.

0 голосов
/ 07 декабря 2012

Неверное имя учетной записи службы, оно должно быть NT AUTHORITY\Network Service.

...