我使用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%
根据documentation,我试图运行命令
%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更改用户吗?
由于
答案 0 :(得分:1)
您需要在用户名之前添加doman:
%PRUNSRV% //US//%SERVICENAME% --ServiceUser <domain>\<my_user> --ServicePassword <password>
如果您想将本地用户设置为ServiceUser,您可以尝试这样做
%PRUNSRV% //US//%SERVICENAME% --ServiceUser .\<my_user> --ServicePassword <password>
这对我有用。我在Procrun documentation
中找到了这个指定运行服务的帐户的名称。使用DomainName \ UserName形式的帐户名称。服务进程将以此用户身份登录。如果帐户属于内置域,则可以指定。\ UserName
亲切的问候