Я пытался заставить мой .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 я не могу читать или писать по сетям.
Есть идеи, как я мог читать и писать через сети? Ваши ответы очень ценятся.