无法将用户设置为 运行 服务

Can't set User to run the service

我正在使用 p运行srv 运行 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%

根据 documentation,我已尝试 运行 命令

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

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

但没有效果。

如果我输入错误密码的用户,我会收到一条消息说

The account name is invalid or does not exist, or the password is invalid for the account name specified.

但是当用户和密码正确时,我没有任何反馈,当我打开 Windows 服务时,我可以看到我的服务已安装和 运行ning,但始终如本地系统。

我注意到,当我在服务属性中更改用户时,它会在

中更改一个名为 ObjectName 的 属性
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<ServiceName>

并且当我 运行 带有 --User 和 --Password 的 p运行srv 时,它会在

中添加一个名为 属性 的用户
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\ProcRun 2.0\<ServiceName>

谁能告诉我如何使用 p运行srv 更改用户?

谢谢

您需要在用户名前添加doman:

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

如果你想将本地用户设置为 ServiceUser 你可以这样尝试

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

这对我有用。我在 Procrun documentation

中找到了这个

Specifies the name of the account under which the service should run. Use an account name in the form DomainName\UserName. The service process will be logged on as this user. if the account belongs to the built-in domain, you can specify .\UserName

亲切的问候