Не удается настроить пользователя для запуска службы

Я использую prunsrv для запуска файла JAR в качестве службы Windows.

Мне нужно изменить пользователя, который запускает службу с LocalSystem на пользователя машины, и я не могу заставить его работать.

Это скрипт bash, который мне нужен для создания сервиса:

%PRUNSRV% //IS//%SERVICENAME% --Startup auto --StartClass <start_class_name> --StopClass <stop_class_name>
%PRUNSRV% //US//%SERVICENAME% --DisplayName "%DISPLAYNAME%" --Description "%DESCRIPTION%"
%PRUNSRV% //US//%SERVICENAME% --StartMode jvm --StopMode jvm --Jvm %JVM_DLL%
%PRUNSRV% //US//%SERVICENAME% --StartMethod start --StopMethod stop
%PRUNSRV% //US//%SERVICENAME% --Classpath "%APP_CLASSPATH%" --JvmMs 128 --JvmMx 256
%PRUNSRV% //US//%SERVICENAME% --JvmOptions %JAVA_OPTS% %LOG_OPTS%

Согласно документации, я пытался запустить команду

%PRUNSRV% //US//%SERVICENAME% --User <my_user> --Password <password>

а также

%PRUNSRV% //US//%SERVICENAME% --ServiceUser <my_user> --ServicePassword <password>

но без эффекта.

Если я введу пользователя с неверным паролем, я получу сообщение

Имя учетной записи недействительно или не существует, или пароль недействителен для указанного имени учетной записи.

но у меня нет никакой обратной связи, когда имя пользователя и пароль верны, и когда я открываю службы Windows, я вижу, что моя служба установлена ​​и работает, но всегда как LocalSystem.

Я заметил, что когда я меняю пользователя в свойствах сервиса, он меняет свойство с именем ObjectName в

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<ServiceName>

и когда я запускаю prunsrv с помощью --User и --Password, он добавляет свойство с именем user в

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\ProcRun 2.0\<ServiceName>

Может кто-нибудь дать мне подсказку о том, как я могу изменить пользователя с помощью prunsrv?

Спасибо

1 ответ

Решение

Вам нужно добавить Doman перед именем пользователя:

%PRUNSRV% //US//%SERVICENAME% --ServiceUser <domain>\<my_user> --ServicePassword <password>

Если вы хотите установить локального пользователя как ServiceUser, вы можете попробовать вот так

%PRUNSRV% //US//%SERVICENAME% --ServiceUser .\<my_user> --ServicePassword <password>

Это сработало для меня. Я нашел это в документации Procrun

Указывает имя учетной записи, под которой должна работать служба. Используйте имя учетной записи в форме DomainName\UserName. Процесс обслуживания будет зарегистрирован как этот пользователь. если учетная запись принадлежит встроенному домену, вы можете указать.\UserName

С уважением

Другие вопросы по тегам