通过 WMI(Windows Management Instrumentation)检索其他用户拥有的进程的命令行参数



目标:如标题所示,我想在监视工具的上下文中检索在Microsoft Windows服务器上运行的进程的命令行参数。

由于该工具用于监控关键系统,因此存在一些约束(我们不要争论它们,它们无法更改(:

  • 用于监视的协议必须是 WMI。
  • 监控工具必须使用专用用户mon-user
    • 此用户在任何情况下都不会获得计算机上的(完整(管理员权限;无论具体如何,如有必要,可能会授予单个权限。
  • 该工具应检索由任何用户(而不仅仅是mon-user(启动的(java(进程的命令行参数。

进度:当我以mon-user身份登录到受监视的系统时,我能够使用 PowerShell 命令Get-WmiObject Win32_Process | Select Name,CommandLine检索mon-user启动的进程的进程名称和命令行参数。这显示了所有进程的名称(包括其他用户启动的进程(,但仅显示由 mon-user本身启动的进程的命令行参数。

当我使用启动进程的用户帐户中的相同命令时,我看到该用户进程的命令行参数,但没有看到mon-user的命令行参数。

我无权访问管理员帐户,因此无法验证管理员是否能够看到两个用户启动的进程的命令行参数。

问题:从上面的观察结果中,我得出结论,检索命令行参数与进程所有权(或其他各种论坛讨论所建议的管理员权限(有关。我想知道,是否有一些特权,权限或用户权限,我可以授予mon-user以获取所需的信息。

提前感谢您的回复。

经过一些(管理(努力,我设法制定了一个解决方案: 作为我感兴趣的进程启动的一部分(我的团队可以访问源代码(,我们通过进程本身实现了对 DACL 的更改,为mon-user提供了额外的权限PROCESS_VM_READPROCESS_QUERY_INFORMATION

非常感谢 +1 对 eryksun 的有用评论。

最新更新