当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 使用 WMI 过滤限制组策略

作者:精品下载站 日期:2024-12-14 20:01:45 浏览:17 分类:玩电脑

使用 WMI 过滤限制组策略


组策略 (GPO) 中的 WMI 筛选器允许您使用不同的规则更灵活地将策略应用到客户端。 WMI 过滤器是一组 WMI 查询(使用 WMI 查询语言/WQL),您可以使用它们来定位应应用特定组策略的计算机。例如,使用 WMI GPO 筛选器,您可以将链接到 OU 的策略仅应用到运行 Windows 10 的计算机(具有此类 WMI 筛选器的策略不适用于使用其他 Windows 版本的计算机)。

WMI GPO 过滤器的用途是什么?

通常,当多个域对象(用户或计算机)位于平面 AD 结构而不是单独的 OU 中时,或者如果您需要根据操作系统版本、网络设置、安装的软件或可以使用 WMI 选择的任何其他条件应用组策略,则可以使用使用 WMI(Windows Management Instrumentation)进行组策略过滤。当客户端处理此类组策略时,Windows 将检查其状态是否符合指定的 WMI 查询,如果满足过滤条件,则 GPO 将应用于此计算机。

WMI 组策略筛选器首次出现在 Windows XP/Server 2003 中,并且在最新的 Windows 版本(Windows Server 2019、2016 和 Windows 10、8.1)中可用。

创建新的 WMI 筛选器并将其链接到 GPO

要创建新的 WMI 过滤器,请打开组策略管理控制台 (gpmc.msc) 并转至林 -> 域 -> a-d.site -> WMI 过滤器。此部分包含 AD 域中的所有 WMI 过滤器。创建新的 WMI 过滤器(新建)。

[玩转系统] 使用 WMI 过滤限制组策略

输入过滤器名称及其描述(可选)。要将 WMI 查询代码添加到过滤器,请单击添加按钮,指定 WMI 命名空间的名称(默认情况下为root\CIMv2)并指定 WMI 代码。

使用以下 WMI 查询格式:

Select * from <WMI Class> WHERE <Property> = <Value>

在此示例中,我想创建一个 WMI 筛选器,仅允许将 GPO 应用到运行 Windows 10 的计算机。WMI 查询可能如下所示:

Select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1"

[玩转系统] 使用 WMI 过滤限制组策略

创建的 WMI 过滤器存储在 Active Directory 域的 msWMI-Som 类对象中,位于 DC=…、CN=System、CN=WMIPolicy、CN=SOM 部分,您可以使用 adsiedit.msc 查找和编辑它们。

[玩转系统] 使用 WMI 过滤限制组策略

创建 WMI 筛选器后,您可以将其链接到特定的 GPO。在 GPMC 控制台中找到所需的策略,然后在范围选项卡的WMI 筛选部分下拉列表中选择您的 WMI 筛选器。在此示例中,我只想将打印机分配策略应用到运行 Windows 10 的计算机。

[玩转系统] 使用 WMI 过滤限制组策略

等待此策略应用到客户端,或使用命令手动更新

gpupdate /force

。分析客户端上应用的策略时,请使用 gpresult /r 命令。如果该策略影响客户端,但由于 WMI 筛选器限制而不适用,则此类策略将在 gpresult 报告中显示状态筛选:拒绝(WMI 筛选器)

[玩转系统] 使用 WMI 过滤限制组策略

GPO WMI 过滤示例

让我们看一下最常用的 WMI GPO 过滤器的各种示例。

借助 WMI 过滤器,您可以选择操作系统类型:

  • ProductType=1 - 任何桌面 Windows 版本;

  • ProductType=2 - Active Directory 域控制器;

  • 产品类型=3 - Windows 服务器。

Windows 版本:

  • Windows Server 2016 和 Windows 10 — 10.%

  • Windows Server 2012 R2 和 Windows 8.1 — 6.3%

  • Windows Server 2012 和 Windows 8 — 6.2%

  • Windows Server 2008 R2 和 Windows 7 — 6.1%

  • Windows Server 2008 和 Windows Vista — 6.0%

  • Windows Server 2003 — 5.2%

  • Windows XP - 5.1%

  • Windows 2000 - 5.0%

您可以使用逻辑运算符 ANDOR 组合 WMI 查询中的条件。要仅将该策略应用于运行 Windows Server 2016 的服务器,WMI 查询代码将如下所示:

select * from Win32_OperatingSystem WHERE Version LIKE "10.%" AND (ProductType = "2" or ProductType = "3" )

要选择 32 位版本的 Windows 8.1:


select * from Win32_OperatingSystem WHERE Version like "6.3%" AND ProductType="1" AND OSArchitecture = "32-bit"

仅将 GPO 应用到 64 位操作系统:

Select * from Win32_Processor where AddressWidth = "64"

您可以选择具有特定内部版本号的 Windows 10,例如 Windows 10 1803:

select Version from Win32_OperatingSystem WHERE Version like “10.0.17134” AND ProductType=”1″

仅将策略应用于 VMWare 虚拟机:

SELECT Model FROM Win32_ComputerSystem WHERE Model = “VMWare Virtual Platform”

仅将策略应用于笔记本电脑(请参阅文章 WMI 查询以在 SCCM 中查找笔记本电脑):

select * from Win32_SystemEnclosure where ChassisTypes = "8" or ChassisTypes = "9" or ChassisTypes = "10" or ChassisTypes = "11" or ChassisTypes = "12" or ChassisTypes = "14" or ChassisTypes = "18" or ChassisTypes = "21"

WMI 过滤器,仅适用于名称以“lon-pc”开头的计算机(例如,禁用这些设备上的 USB 驱动器):

SELECT Name FROM Win32_ComputerSystem WHERE Name LIKE ‘lon-pc%’

使用 WMI 筛选器将 GPO 应用到 IP 子网一文中描述了使用 WMI 筛选器将 GPO 定位到 IP 子网的另一个示例。例如,要将策略应用到多个 IP 子网中的客户端,请使用 WMI 查询:

Select * FROM Win32_IP4RouteTable WHERE (Mask='255.255.255.255' AND (Destination Like 10.1.1.%' OR Destination Like '10.1.2.%'))

仅选择 RAM 超过 1 GB 的设备:

Select * from WIN32_ComputerSystem where TotalPhysicalMemory >= 1073741824

用于验证是否已安装 Internet Explorer 11 的 WMI 筛选器:


SELECT path,filename,extension,version FROM CIM_DataFile WHERE path="\Program Files\Internet Explorer\" AND filename="iexplore" AND extension="exe" AND version>"11.0"

使用 PowerShell 测试 GPO WMI 筛选器

创建 WMI 查询时,有时需要获取计算机上各种 WMI 参数的值。您可以使用 Get-WMIObject cmdlet 获取此信息。例如,我需要显示 Win32_OperatingSystem 类的 WMI 属性和值:

Get-WMIObject Win32_OperatingSystem
SystemDirectory : C:\WINDOWS\system32
Organization    :
BuildNumber     : 17134
RegisteredUser  : Windows User
SerialNumber    : 00331-10000-00001-AA146
Version         : 10.0.17134

显示所有可用的类属性:

Get-WMIObject Win32_OperatingSystem| Select *

[玩转系统] 使用 WMI 过滤限制组策略

您可以使用 PowerShell 在计算机上测试 WMI 筛选器。假设您编写了一个复杂的 WMI 查询并想要检查计算机是否与该查询匹配。例如,您创建了一个 WMI 筛选器来检查计算机上的 IE 11。您可以使用 get-wmiobject cmdlet 在目标计算机上测试此 WMI 查询:

get-wmiobject -query 'SELECT * FROM CIM_DataFile WHERE path="\Program Files\Internet Explorer\" AND filename="iexplore" AND extension="exe" AND version LIKE "11.%"'

如果此命令返回某些内容,则计算机满足查询条件。如果 get-wmiobject 命令没有返回任何内容,则该计算机与 WMI 过滤器查询不匹配。
例如,在运行 Windows 10 和 IE 11 的计算机上运行指定的命令时,该命令将返回:

Compressed : False
Encrypted  : False
Size       :
Hidden     : False
Name       : c:\program files\internet explorer\iexplore.exe
Readable   : True
System     : False
Version    : 11.0.17134.1
Writeable  : True

[玩转系统] 使用 WMI 过滤限制组策略

这意味着计算机上安装了 IE 11,并且具有此类 WMI 筛选器的 GPO 将应用于该计算机。

因此,我们研究了如何使用 WMI 过滤器将 GPO 仅应用于满足不同 WMI 查询的计算机。在分析计算机上未应用某个GPO的原因时,有必要考虑WMI过滤器的存在。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯