Не удается настроить пользователя для запуска службы
Я использую 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
С уважением