我正在使用 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>
当我使用 --User 和 --Password 运行 prunsrv 时,它会在其中添加一个名为 user 的属性
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\ProcRun 2.0\<ServiceName>
有人可以提示我如何使用 prunsrv 更改用户吗?
谢谢