如何查询 WMI 来了解启动服务的用户的名称?

如何查询 WMI 来了解启动服务的用户的名称?

我在 Windows8.1x64 上对 wbemtest.exe 使用了几个 WMI 查询,试图找出哪个用户启动了特定服务。下面列出了让我“走到这一步”的查询。我知道如果我像这样查询 win32_service 对象:

select * from win32_service where name like '%SERVICENAME%'

我只获得一个结果(我正在寻找的服务),然后我双击它来浏览服务属性,发现有一个名为“StartName”的属性,它显示启动它的用户的名称(这就是我想要的)。

现在,当我这样做时问题就开始了:

 select StartName from win32_service where name like '%SERVICENAME%'

我明白了Win32_Service = <no key>

即使没有 where 子句,它也显示相同的内容。(但对于所有本地服务)

我缺少什么才能使它正常工作?

答案1

该财产不是谁开始了,但应该由谁来开始于即它将在哪个帐户下运行。

我认为这里对您来说最好的选择是事件日志,尽管我认为它只会显示默认进入停止和启动状态的服务。

该服务通常在 SYSTEM 或 NETWORK SERVICE 或其他系统帐户下运行,因此即使您找到可执行进程,也不会包含答案。

简而言之,这很棘手。我认为您可能需要研究 Windows 中的审核功能。事实上,它是一项服务,这意味着通常是系统而不是用户启动它。

相关内容