在NT AUTHORITY \ SYSTEM下运行的Windows服务的Win32_Process上查询命令行所需的权限?

时间:2015-04-03 08:26:58

标签: wmi win32-process

我有一个示例应用程序,它在Win32_Process上触发WMI查询,以读取作为服务运行的进程的命令行。当应用程序以管理员身份运行时,它会成功并返回服务进程的实际命令行。但是当我在本地用户下运行应用程序并获得本地管理员权限时,应用程序不会返回任何错误,但命令行值(由IWbemClassObject :: Get()返回)为空。服务在NT AUTHORITY \ SYSTEM下运行。

除本地管理员外,还应该为本地用户提供哪些其他权利才能成功获取命令行?

此致 罗希特夏尔

1 个答案:

答案 0 :(得分:0)

在启用了UAC的Vista +中,管理员用户默认情况下不会启用所有管理员权限,因此以管理员用户身份运行程序并不能保证它以完全管理员权限运行,就像在XP中一样。该程序必须以提升状态运行才能获得完全的管理权限。

读取另一个进程的命令行需要SE_DEBUG_NAME权限。如果允许运行您的应用程序的用户具有该权限,则您的应用程序可以使用AdjustTokenPrivilege()启用该权限,然后再查询服务器进程信息。

Enabling and Disabling Privileges in C++