Restricción de la directiva de grupo con filtrado WMI

Los filtros WMI en la directiva de grupo (GPO) le permiten aplicar directivas a los clientes de manera más flexible mediante el uso de diferentes reglas. Un filtro WMI es un conjunto de consultas WMI (el lenguaje de consulta WMI / WQL se utiliza) que puede utilizar para apuntar a equipos a los que se debe aplicar una política de grupo específica. Por ejemplo, al usar el filtro WMI GPO, puede aplicar una política vinculada a una OU solo a equipos que ejecutan Windows 10 (una política con dicho filtro WMI no se aplicará a equipos con otras versiones de Windows).

¿Para qué se utilizan los filtros de GPO de WMI?

Normalmente, el filtrado de políticas de grupo mediante WMI (Instrumental de administración de Windows) se puede usar cuando varios objetos de dominio (usuarios o computadoras) están ubicados en la estructura plana de AD en lugar de la unidad organizativa separada, o si necesita aplicar políticas de grupo, de acuerdo con la versión del sistema operativo, la configuración de red, el software instalado o cualquier otro criterio que pueda seleccionarse mediante WMI. Cuando el cliente procesa dicha política de grupo, Windows verificará que su estado cumpla con la consulta WMI especificada y, si se cumplen las condiciones del filtro, el GPO se aplicará a esta computadora.

Los filtros de políticas de grupo de WMI aparecieron por primera vez en Windows XP / Server 2003 y están disponibles en las últimas versiones de Windows (Windows Server 2019, 2016 y Windows 10, 8.1).

Cree un nuevo filtro WMI y vincúlelo a un GPO

Para crear un nuevo filtro WMI, abra el Administración de Políticas de Grupo consola (gpmc.msc y vaya a Bosque -> Dominios -> woshub.com -> Filtros WMI. Esta sección contiene todos los filtros WMI en el dominio AD. Cree un nuevo filtro WMI (Nuevo).

crear filtro wmi en la consola de gestión de políticas de grupo

Escriba el nombre del filtro y su descripción (opcional). Para agregar un código de consulta WMI al filtro, haga clic en el Agregar , especifique el nombre del espacio de nombres WMI (de forma predeterminada, raíz CIMv2) y especifique el código WMI.

Se utiliza el siguiente formato de consulta WMI:

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

En este ejemplo, quiero crear un filtro WMI que permita aplicar GPO solo a computadoras que ejecutan Windows 10. La consulta WMI puede verse así:

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

consulta de código wmi en gpo

Los filtros WMI creados se almacenan en el msWMI-Som objetos de clase del dominio de Active Directory en la sección DC =…, CN = Sistema, CN = WMIPolicy, CN = SOM, puede encontrarlos y editarlos utilizando adsiedit.msc.

Objeto de directorio activo msWMI-Som

Una vez que haya creado un filtro WMI, puede vincularlo a un GPO específico. Busque la política deseada en la consola de GPMC y en el Alcance pestaña, en la Filtrado WMI sección lista desplegable, seleccione su filtro WMI. En este ejemplo, quiero aplicar la política de asignación de impresoras solo a computadoras que ejecutan Windows 10.

vincular un filtro wmi a un gpo

Espere a que esta política se aplique a los clientes o actualícela manualmente con el comando gpupdate /force. Al analizar las políticas aplicadas en el cliente, use el comando gpresult / r. Si la política afecta al cliente, pero no se aplica debido a las restricciones del filtro WMI, dicha política tendrá el estado Filtrado: denegado (filtro WMI) en el informe gpresult.

gpresult: filtrado de filtro WMI denegado

Ejemplos de filtrado de GPO WMI

Echemos un vistazo a los diversos ejemplos de filtros WMI GPO que se utilizan con más frecuencia.

Con la ayuda del filtro WMI, puede elegir el tipo de sistema operativo:

  • ProductType = 1 – cualquier edición de escritorio de Windows;
  • ProductType = 2: controlador de dominio de Active Directory;
  • ProductType = 3 – Servidor de Windows.

Versiones de Windows:

  • Windows Server 2016 y Windows 10 – 10%
  • Windows Server 2012 R2 y Windows 8.1 – 6,3%
  • Windows Server 2012 y Windows 8 – 6,2%
  • Windows Server 2008 R2 y Windows 7 – 6,1%
  • Windows Server 2008 y Windows Vista – 6,0%
  • Windows Server 2003 – 5,2%
  • Windows XP – 5,1%
  • Windows 2000 – 5,0%

Puede combinar condiciones en una consulta WMI utilizando los operadores lógicos Y y O. Para aplicar la política solo a los servidores que ejecutan Windows Server 2016, el código de consulta de WMI será el siguiente:

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

Para seleccionar versiones de 32 bits de Windows 8.1:

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

Para aplicar el GPO solo a sistemas operativos de 64 bits:

Select * from Win32_Processor where AddressWidth = "64"

Puede seleccionar Windows 10 con un número de compilación específico, por ejemplo, Windows 10 1803:

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

Aplique la política solo a máquinas virtuales VMWare:

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

Aplique la política solo a las computadoras portátiles (consulte el artículo Consulta de WMI para encontrar computadoras portátiles en 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"

Filtro WMI, que se aplica solo a las computadoras cuyos nombres comienzan con «lon-pc» (por ejemplo, para deshabilitar las unidades USB en estos dispositivos):

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

Otro ejemplo del uso de un filtro WMI para dirigir GPO a subredes IP se describe en el artículo Usar filtro WMI para aplicar GPO a subredes IP. Por ejemplo, para aplicar una política a los clientes en las múltiples subredes IP, use la consulta WMI:

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

Para seleccionar solo dispositivos con RAM superior a 1 GB:

Select * from WIN32_ComputerSystem where TotalPhysicalMemory >= 1073741824

Filtro WMI para verificar que Internet Explorer 11 esté instalado:

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

Probar filtros WMI de GPO con PowerShell

Al crear consultas WMI, a veces es necesario obtener los valores de varios parámetros WMI en la computadora. Puede obtener esta información utilizando el Get-WMIObject cmdlet. Por ejemplo, necesito mostrar los atributos y valores de WMI de la clase Win32_OperatingSystem:

Get-WMIObject Win32_OperatingSystem

SystemDirectory : C:WINDOWSsystem32
Organization    :
BuildNumber     : 17134
RegisteredUser  : Windows User
SerialNumber    : 00331-10000-00001-AA146
Version         : 10.0.17134

Para mostrar todas las propiedades de clase disponibles:

Get-WMIObject Win32_OperatingSystem| Select *

Get-WMIObject enumera todas las propiedades de la clase wmi

Puede usar PowerShell para probar filtros WMI en una computadora. Suponga que ha escrito una consulta WMI compleja y desea comprobar si la computadora coincide con esta consulta o no. Por ejemplo, creó un filtro WMI para verificar el IE 11 en una computadora. Puede probar esta consulta WMI en el equipo de destino utilizando el get-wmiobject cmdlet:
get-wmiobject -query 'SELECT * FROM CIM_DataFile WHERE path="\Program Files\Internet Explorer\" AND filename="iexplore" AND extension="exe" AND version LIKE "11.%"'

Si este comando devuelve algo, entonces la computadora cumple con las condiciones de la consulta. Si el comando get-wmiobject no devuelve nada, la computadora no coincide con la consulta del filtro WMI.
Por ejemplo, al ejecutar el comando especificado en una computadora con Windows 10 e IE 11, el comando devolverá:

Compressed : False
Encrypted  : False
Size       :
Hidden     : False
Name       : c:program filesinternet exploreriexplore.exe
Readable   : True
System     : False
Version    : 11.0.17134.1
Writeable  : True

get-wmiobject: comando para probar consultas wmi

Esto significa que IE 11 está instalado en la computadora y se aplicará un GPO con dicho filtro WMI a esta computadora.

Por lo tanto, analizamos cómo usar filtros WMI para aplicar GPO solo a equipos que cumplen con las diferentes consultas de WMI. Es necesario tener en cuenta la presencia de filtros WMI a la hora de analizar los motivos por los que no se aplica determinado GPO en el equipo.

Artículos Interesantes