-3

如何在 Powershell 中获取 Windows 服务帐户列表?我在网上看到了许多试图实现这一目标的脚本。但是,它们都只是查询 Windows 服务列表,并查看它们各自的 StartName 以查看正在使用的服务帐户。从理论上讲,不可能有一个服务帐户碰巧没有被任何服务使用吗?为了演示我所指的内容,打开 Windows 资源管理器(文件资源管理器),右键单击任何文件,选择属性 > 安全 > 编辑 > 添加 > 高级 > 立即查找。我想要完整的用户列表。我已经知道如何查询普通用户和组,而不是服务帐户。

谢谢,

4

1 回答 1

1

这样做,这...

Windows 资源管理器(文件资源管理器),右键单击任何文件,选择属性 > 安全 > 编辑 > 添加 > 高级 > 立即查找

...仅显示对文件具有权限的用户。这与服务帐户有什么关系?如果您想要文件或文件夹上的用户/权限列表,这就是 Get-ACL 的用途。

# Get parameters, examples, full and Online help for a cmdlet or function

(Get-Command -Name Get-Acl).Parameters
Get-help -Name Get-Acl -Examples
Get-help -Name Get-Acl -Full
Get-help -Name Get-Acl -Online

(Get-Acl D:\Temp\fsoVolume.docx | Select -ExpandProperty Access).IdentityReference

至于这个……

从理论上讲,不可能有一个服务帐户碰巧没有被任何服务使用吗?

... 没有。

你在这里说的话是无效的。简而言之,未分配给服务的服务帐户只是一个用户帐户。除非您知道要查找的服务并知道应该分配给服务的帐户,否则您永远无法知道某个用户帐户是否用作服务标识。

同样,服务帐户仅在分配给服务时才是服务帐户。不管它叫什么名字。

大多数组织都有将用于给定服务的帐户的分类/命名约定。通常,像 svcSQlService 之类的东西。然而,如果您的组织没有标准,那么这是首先要解决的问题。

您只能列出所有服务并查看分配了哪个帐户作为其身份。如果您的组织具有命名构造,您可以使用该列表与所有服务进行比较,以查看它是否曾经分配给任何内容。如果不是,则应将其分配给其目标服务或将其作为某个随机用户帐户删除。

于 2018-02-09T00:22:33.573 回答