ZEDA.nl

ZEDA.nl

Tips & Tweaks voor Windows

Gebruikerswaardering:  / 1
ZwakZeer goed 

Werken met WMI filters

GPO's kun je koppelen aan het domein, een site of een OU, meer keuzes heb je niet. Als je meer controle nodig hebt dan dat, is het mogelijk om een security filter toe te passen. Hiermee bepaal je dat een GPO alleen van toepassing is op leden van een bepaalde groep.

Soms kom je situaties tegen die om een ander soort filter vragen. Je wil bijvoorbeeld een GPO maken die alleen van toepassing is op computers met Windows 7 of alleen op computers met meer dan 2 GB geheugen. Voor dit soort doeleinden is het WMI filter geschikt.

Dit artikel bevat de volgende onderdelen:

  • Wat is WMI?
  • WMI filters maken
  • WMI code genereren
  • Meer dan 30 voorbeeld WMI filters
  • Testen van WMI filters

Wat is WMI?

WMI is een uniforme manier om toegang te krijgen tot systeem- en beheergegevens op een databaseachtige manier. De meest voorkomende syntax van een WMI query is:

Select [property] from [wmi class]

WMI filters maken

een WMI filter maak je door middel van de volgende stappen:

1. Start Group Policy Management Console en maak connectie met het domein.

2. Klik met de rechtermuistoets op WMI Filters en kies voor New.

3. Geef een titel en een omschrijving aan het filter en klik op Add.

4.Geef de query op en Klik op OK.

5. Herhaal stop 3 en 4 als je meerdere queries in 1 filter wil opnemen.

6. Klik op Save.

Dit ziet er allemaal simpel uit en dat is het ook. De vraag is natuurlijk nog wel wat je voor query invoert in stap 4.

WMI code genereren

Als je een klein beetje feeling met scripten hebt raad ik aan de WMI Code Creator van Microsoft te downloaden. Met deze tool wordt het eenvoudig een query te maken en te testen. Onderstaande screendump laat zien hoe je de code genereert om het bestaan van drive D: te controleren.

Download: WMI Code Creator

WMI filters zijn toch traag??

Het is een veel verspreid gerucht dat WMI filters traag zijn en dat je ze daarom moet vermijden. WMI is een krachtig instrument waar veel mee kan. Zo is het mogelijk om een filter te maken die kijkt of er op schijf C: een bestand voorkomt met de naam koffie.txt. Ja, zo'n filter is heel traag.

De voorbeelden die in dit artikel genoemd worden zijn een stuk simpeler en veel sneller. Bij twijfel is het wel verstandig de tijd goed te meten.

Om de leesbaarheid te vergroten gebruiken deze voorbeelden de syntax select * from.

Voorbeeld WMI filters

Nog makkelijker dan de code te genereren is natuurlijk als iemand de code al voor je heeft gemaakt. Onderstaande filters zijn allen getest op Windows Server 2008 R2 en Windows 7. Eerdere versies van Windows zullen de meeste filters echter ook gewoon ondersteunen.

De namespace die gebruikt wordt is tenzij anders aangegeven root\CIMv2.

Computer eigenschappen

Computer is een laptop (omdat het een batterij heeft)

SELECT * FROM Win32_Battery

Schermresolutie is minimaal 1280x720

SELECT * FROM Win32_DisplayControllerConfiguration WHERE HorizontalResolution>1279 AND VerticalResolution>719

Systeem loopt op batterijen

SELECT * FROM BatteryStatus Where Discharging = True

NB: Namespace voor dit filter: \root\WMI

Computer heeft meer dan 2GB geheugen

SELECT * FROM Win32_ComputerSystem WHERE TotalPhysicalMemory > 2000000000

Schijf D: heeft meer dan 100GB free space

SELECT * FROM Win32_LogicalDisk WHERE FreeSpace > 100000000000 AND Caption = "D:"

Computer heeft een Intel Processor

SELECT * FROM Win32_Processor WHERE Manufacturer = "GenuineIntel"

Computer heeft meer dan 2 logische processors

SELECT * FROM Win32_ComputerSystem where NumberOfLogicalProcessors > 2

Computer heeft meer dan 1 fysieke processor

SELECT * FROM Win32_ComputerSystem where NumberOfProcessors > 1

Computer heeft een Infrarood device

SELECT * FROM CIM_InfraredController

Computer heeft een floppy drive

SELECT * FROM Win32_FloppyDrive

Computer heeft een actieve Trusted Platform Module (TPM)

SELECT * FROM Win32_Tpm WHERE IsEnabled_InitialValue = True

NB: Namespace voor dit filter: root\CIMV2\Security\MicrosoftTpm

Computer is een Compaq Presario SR5115NL

SELECT * FROM Win32_ComputerSystem WHERE manufacturer = "Compaq-Presario" and Model = "GN729AA-ABH SR5115NL"

Windows Operating System

64 bits OS geïnstalleerd:

SELECT OSArchitecture FROM Win32_OperatingSystem WHERE OSArchitecture = "64-bit"

OS Windows 7

SELECT * FROM Win32_OperatingSystem WHERE Version = "6.1%" and ProductType = "1"

OS Windows 7 met service pack 1

SELECT * FROM Win32_OperatingSystem WHERE Version = "6.1%" and ProductType = "1" and ServicePackMajorVersion = "1"

OS Windows Vista

SELECT * FROM Win32_OperatingSystem WHERE Version = "6.0%" and ProductType = "1"

OS Windows XP

SELECT * FROM Win32_OperatingSystem WHERE Version = "5.1%" and ProductType = "1"

OS Windows 2000 workstation

SELECT * FROM Win32_OperatingSystem WHERE Version = "5.0%" and ProductType = "1"

OS Windows 2008 R2 server met service pack 1

SELECT * FROM Win32_OperatingSystem WHERE Version = "6.1%" and ProductType <> "1" and ServicePackMajorVersion = "1"

OS Windows 2008 R2 server

SELECT * FROM Win32_OperatingSystem WHERE Version = "6.1%" and ProductType <> "1"

OS Windows 2008 server

SELECT * FROM Win32_OperatingSystem WHERE Version = "6.0%" and ProductType <> "1"

OS Windows 2003 server

SELECT * FROM Win32_OperatingSystem WHERE Version = "5.2%" and ProductType <> "1"

OS Windows 2000 server

SELECT * FROM Win32_OperatingSystem WHERE Version = "5.0%" and ProductType <> "1"

Software en instellingen

Tijdzone + 1 (bias is verschil tussen GMT+0 timezone in minuten)

SELECT * FROM win32_timezone WHERE bias = 60

De Windows feature webserver is geïnstalleerd

SELECT * FROM Win32_ServerFeature WHERE Name="Web Server (IIS)"

De service DHCP Server start automatisch

SELECT * FROM Win32_Service WHERE Caption="DHCP Server" AND StartMode="Auto"

De share Backup$ is op deze computer gedefinieerd

SELECT * FROM Win32_Share WHERE Caption="Backup$"

Bestand C:\windows\system32\notepad.exe is aanwezig

SELECT * FROM CIM_Datafile WHERE Name="C:\\windows\\system32\\notepad.exe"

Er bestaat een lokale gebruiker met de naam JDoe

SELECT * FROM Win32_UserAccount WHERE Name="JDoe" AND LocalAccount=True

De lokale groep WSUS-administrators bestaat

SELECT * FROM Win32_Group WHERE LocalAccount=True AND Name="WSUS-administrators"

Microsoft Office is geïnstalleerd (Trage Query!!)

SELECT * FROM Win32_Product WHERE Caption LIKE "Microsoft Office%"

Active Directory

Computer is een AD client computer

SELECT ProductType FROM Win32_OperatingSystem WHERE ProductType = "1"

Computer is een AD domain controller

SELECT ProductType FROM Win32_OperatingSystem WHERE ProductType = "2"

Computer is een AD member server

SELECT ProductType FROM Win32_OperatingSystem WHERE ProductType = "3"

AD Site-naam is Amsterdam

SELECT * FROM Win32_NTDomain WHERE ClientSiteName = "Amsterdam"

Datum en tijd

Het is maandag (1=maandag, 2=dinsdag, etc)

Select DayOfWeek FROM Win32_LocalTime WHERE DayOfWeek = 1

Het is februari (1=januari, 2=februari, etc)

Select DayOfWeek FROM Win32_LocalTime WHERE month = 2

Testen van WMI filters

Je WMI filter is gemaakt en gekoppeld aan je GPO, maar werkt hij ook? Om dit te beoordelen kun je de Group Policy Results raadplegen in het Group Policy Management Console.

In deze screendump zie je dat het WMI Filter op de GPO Dummy de waarde True heeft, wat betekent dat de GPO zal worden toegepast.

NB: Het kan zijn dat je eerst de GPO's moet verversen d.m.v. gpupdate.

Als je bekend bent met powershell kun je de performance van een WMI filter testen met het commando:

measure-Command {Get-WmiObject -query '[query]'}

Dit artikel is van toepassing op: Windows 2003, Windows 2008, Windows 2008 R2, Windows XP, Windows Vista, Windows 7.

ZEDA.nl

Tips & Tweaks for Windows

Meest gelezen:

Ad:

Tools:

EU e-Privacy Directive

Deze site gebruikt cookies voor analytics, advertenties en voor functionele doeleinden. Wilt u de cookies toestaan?

You have declined cookies. This decision can be reversed.

You have allowed cookies to be placed on your computer. This decision can be reversed.