以不同用户身份安装服务

Installing services as different users

我正在安装 filebeat 应用程序,我注意到我需要以管理员身份 运行 powershell 才能安装它们。当我使用 wmic service get name,startname,status 检查服务时,它显示本地系统。我想知道这个帐户是什么,因为它既不是用户帐户也不是管理员帐户。当我以管理员身份安装服务时,情况是否总是如此?如果我以普通用户和管理员身份安装它有什么区别?

无论如何,我已将此服务设置为在 windows 启动时自动启动。这个服务是只在我以前安装它的用户登录时启动,还是不管哪个用户登录都会启动?

好的,让我们一个一个地解压,没有特定的顺序:

  • 只有拥有管理员权限的用户才能安装服务。

  • 配置为自动启动的服务会在 Windows up 和 运行ning 后立即启动; Windows 不会等到有人登录。登录用户是谁或是否有人登录对服务没有影响,除非服务应用程序本身已明确编程为检查。

  • 安装该服务的程序决定该服务使用哪个帐户运行。 Windows 不关心使用哪个用户帐户安装该服务,它甚至不跟踪。

  • 如果安装该服务的程序要它使用普通用户帐户,它必须知道该帐户的密码。服务可以 运行 使用各种特殊帐户,这些帐户不需要密码。其中一个特殊帐户是本地系统。

  • 本地系统是Windows中最高权限的服务账户;它拥有与管理员相同的所有权限,可以做管理员做不到的事情。本地系统也是 Windows 的用户模式部分本身 运行 所在的帐户, 大致 等同于 UNIX root 帐户,除了它不是有密码。

补充说明,为了完整性:

  • 本地系统的一个替代方案是 运行 作为本地服务或网络服务的服务,它们是非管理服务帐户。两者之间的唯一区别是,如果计算机加入了 Active Directory 域,则网络服务帐户可以访问该域中的其他计算机,而本地服务帐户则不能。

  • 也可以在特定服务独有的特殊服务帐户中将服务配置为 运行。如果您希望服务能够访问特定文件或文件夹,但又不想授予其管理员权限,这将非常有用。

吹毛求疵的角落:

  • 我认为重新配置 Windows 以允许非管理员安装服务在技术上是可行的,但这不受支持并且是一个非常糟糕的主意。但是,如果您这样做了,谁安装了该服务仍然没有区别。 Windows 不记录此信息。