目标: 正如标题所示,我想在监视工具的上下文中检索在 Microsoft Windows 服务器上运行的进程的命令行参数。
由于该工具用于监控关键系统,因此存在一些限制(我们不要争论它们,它们无法更改):
- 用于监控的协议(protocol)必须是 WMI。
- 监控工具必须使用专用用户mon-user。
- 该用户在任何情况下都不会获得计算机的(完整)管理员权限;无论具体如何,如有必要,可能会授予个人权限。
- 该工具应检索任何用户启动的(java)进程的命令行参数,而不仅仅是mon-user。
进度:当我以 mon-user 身份登录受监控系统时,我能够检索由 < 启动的进程的进程名称和命令行参数em>mon-user 使用 PowerShell 命令 Get-WmiObject Win32_Process |选择名称、命令行
。这显示了所有进程的名称(包括其他用户启动的进程),但仅显示 mon-user 本身启动的进程的命令行参数。
当我从启动进程的用户帐户使用相同的命令时,我看到该用户进程的命令行参数,但看不到 mon-user。
我无权访问管理员帐户,因此无法验证管理员是否能够查看两个用户启动的进程的命令行参数。
问题:根据上述观察,我得出结论,检索命令行参数与进程所有权(或其他各种论坛讨论所建议的管理权限)相关。我想知道我是否可以授予mon-user某种特权、许可或用户权利,以便获取所需的信息。
预先感谢您的回复。
最佳答案
经过一些(行政)努力,我设法找到了一个解决方案:
作为我感兴趣的流程启动的一部分(我的团队可以访问源代码),我们通过流程本身对 DACL 进行了更改,为 mon-user 提供了额外的权限PROCESS_VM_READ
和 PROCESS_QUERY_INFORMATION
。
非常感谢并为 eryksun 提供的有用评论+1。
关于windows - 通过 WMI(Windows 管理规范)检索另一个用户拥有的进程的命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45487103/