WQL子查询作为字段值,WMI-Filter的CIMV2 WMI WQL查询

时间:2013-05-17 14:07:58

标签: wmi wmi-query wql

我需要有关组策略WMI筛选器的WMI查询的帮助。我正在查询root \ CIMV2 WMI提供程序中的win32_group命名空间。

我正在几个窗口的计算机(XP-8,服务器03-12)上搜索本地安全组(如“管理员”)。当查询在计算机上运行时,我希望它将计算机名称注入到域的等效字段中。

基本WQL语句如下所示:

SELECT * FROM win32_group 
WHERE Domain="currentComputerName" and Name="Administrators"

我的目标是沿着这些行运行WQL语句,但这是一个错误的WQL语句:

SELECT * FROM win32_group 
WHERE Domain=(SELECT Name FROM Win32_ComputerSystem) and Name="Administrators" 

重要的是我能够为域注入当前计算机的名称。这些计算机是Active Directory(AD)域的一部分。默认情况下,除了本地计算机的安全组(如果省略Domain参数),win32_group将搜索所有AD域的组。通过将本地计算机名称指定为域,查询的性能会更快 - 这对于其目的至关重要。

我在WBEMTEST中尝试了一些查询变体而没有运气。 有没有人对如何将计算机名称注入WQL WMI查询有任何想法?是否可以使用常量,如命令提示符下的HOSTNAME?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

你用什么语言写这个?或者要清楚,您使用什么编程或脚本语言来运行这些WMI查询?

在PowerShell中,您可以通过运行以下代码来执行此操作:

Get-WMIObject -Query "SELECT * FROM Win32_Group WHERE Domain='$env:USERDOMAIN' AND Name='Administrators'"