如何在 Windows 中以特定用户身份运行 Tomcat 服务?

Nob*_*lun 2 windows services login tomcat

我需要这样做,以便 Tomcat 可以利用一些 Active Directory 内容,并且需要进行大量搜索才能对所有琐碎的部分进行排序。希望如果我在这里回答我自己的问题,它会为其他人省去一些麻烦。

  • 如何将 Tomcat 7/8/N 作为服务运行?
  • 如何告诉 TomcatN 服务以哪个用户身份登录?
  • 如何授予用户权限?

Nob*_*lun 6

输入命令时,您应该以管理员身份进行。例如,从 Windows 开始菜单中,输入cmd,右键单击它给您的cmd.exeCommand Prompt,然后选择Run as administrator

将 TomcatN 安装为服务:

只需运行 tomcatc:\path\to\TomcatN\bin\service.bat并为其指定一个服务名称即可使用,即Tomcat8. 或者,

sc Create TomcatN binPath= "c:\path\to\TomcatN\bin\tomcatN.exe" displayName= "Apache Tomcat N"
Run Code Online (Sandbox Code Playgroud)

将服务设置为以特定用户身份运行:

大多数时候你不需要这个。但有时您需要以注册用户身份访问 Windows 网络。例如,如果您正在利用某些 Active Directory 功能。它可能工作,使用以下命令:

C:\path\to\tomcatN\bin\service.bat install TomcatN --user=George --password=abc123
Run Code Online (Sandbox Code Playgroud)

但可能不是。您可以改为手动配置服务。

手动配置服务以使用特定的用户名和密码:

在 Windows 命令提示符下,您可以使用服务配置器。一些感兴趣的命令:

sc
sc query TomcatN
sc qc TomcatN
sc config TomcatN obj= "MyHostName\George" password= "abc123"
Run Code Online (Sandbox Code Playgroud)

注意最后一个命令中等号后面的空格。

确保用户具有以下权限:

输入gpedit.msc命令。在出现的 GUI 中,导航到

Local Computer Policy                  | ...
    - Computer Configuration           | ...
        - Windows Settings             | []Log on as a service
            - Security Settings        | ...
                User Rights Assignment | ...
Run Code Online (Sandbox Code Playgroud)

双击Log on as a serviceAdd User or Group...。在字段中键入您希望服务使用的用户名的简写,单击Check Names,然后按确定。

确认 TomcatN 正在按预期运行:

您可以使用以下命令来启动、停止和检查服务的状态:

net start TomcatN
net stop TomcatN
sc query TomcatN
Run Code Online (Sandbox Code Playgroud)

检查登录是否按预期工作

确保您已启动服务运行。打开 Windows 任务管理器并查看进程选项卡。Show processes from all users如有必要,请单击。TomcatN应列出,并在其旁边显示您指定的用户名。