0

我需要有关组策略 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) 域的一部分。默认情况下,win32_group 将搜索除本地计算机的安全组之外的所有 AD 域组(​​如果省略域参数)。通过将本地机器名称指定为域,查询的性能会大大提高——这对其目的至关重要。

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

谢谢您的帮助!

4

1 回答 1

0

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

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

Get-WMIObject -Query "SELECT * FROM Win32_Group WHERE Domain='$env:USERDOMAIN' AND Name='Administrators'"
于 2013-06-03T14:19:06.107 回答