当 Windows 服务安装在不同的用户下时,它需要手动“登录”,这是预期的吗?

当 Windows 服务安装在不同的用户下时,它需要手动“登录”,这是预期的吗?

使用 golang例子我创建了 Windows 服务应用程序,如文档中所述,我配置了服务用户和密码。我正在使用批处理脚本来执行

    @REM install windows service using that application.
    app install
    timeout /t 5 /nobreak > NUL

    @REM start service using sc.exe command.
    sc.exe start testapp

它与“管理员”帐户配合良好。

但是如果在具有管理员权限的“测试”用户下安装相同的服务,则不会启动该服务。我需要从“services.msc”手动登录,然后它才能正常工作,用户名和密码是正确的。

手动登录消息

有什么方法可以在批处理脚本中完成此登录吗?或者这是预期的行为?

请注意,在“安装”操作期间,服务用户名和密码由此“测试”用户配置。并且“测试”具有基于以下的“作为服务登录”权限

答案1

如果 Windows 服务需要安装在不同的用户下。该用户应该具有“作为服务登录”权限。没有该服务将无法启动。检查此项这里

有很多 powershell 脚本可以执行此操作。如果需要使用批处理或其他方法启用此功能。

就我而言,另一个用户应该具有管理员权限,以及“作为服务登录”权限,添加此权限后,它对我来说很好用。

相关内容