WMI Filter

WMI Filter gelten oftmals als Performance-Killer für Gruppenrichtlinien. Richtig eingesetzt und richtig definiert erleichtern sie jedoch ungemein die Administration und die Performance-Verluste sind minimal. Ein häufiger Fehler, der zu Performance-Verlusten führt, ist die Verwendung von „*“ in den select-Abfragen, statt die benötigen Werte sinnvoll einzugrenzen. Im Folgenden findet ihr eine Auflistung von WMI Filtern die ich einsetze, ohne nennenswerte Performance-Verluste bei der Benutzeranmeldung oder dem Systemstart.

Zur Überprüfung, ob die WMI Filter korrekt funktionieren, empfiehlt sich der WMI Explorer von KS-Soft. Dieser hat eine Query Funktion, mit dem alle WMI Abfragen ausprobiert werden können.

WMI Filter – Betriebssysteme

root\CIMv2

Zur Ermittlung der OS Version kann  die Versionsnummer verwendet werden

Windows Client

SELECT Version,ProductType FROM Win32_OperatingSystem WHERE Version LIKE "<Version>" AND ProductType = "1"

Für Windows 10 gibt es die Besonderheit, dass die Major Version bei allen bisherigen Releases gleich ist, man diese aber dennoch mit WMI unterschieden haben möchte. Enweder verwendet man in diesen Fällen eine Abfrage mit der kompletten Versionsnummer oder man kann zusätzlich zur Versionsnummer die Build-Nummer abfragen:

SELECT Version,BuildNumber,ProductType FROM Win32_OperatingSystem WHERE Version LIKE "<Version>" AND BuildNumber = "<Build>" AND ProductType = "1"

Windows Server

SELECT Version,ProductType FROM Win32_OperatingSystem WHERE Version LIKE "<Version>" AND ( ProductType = "2" or ProductType = "3" )

Analog zu Windows 10 ist auch bei Windows Server ab 2016 eine Unterscheidung durch die vollständige Versionsnummer oder durch die Build-Nummer erforderlich.

SELECT Version,BuildNumber,ProductType FROM Win32_OperatingSystem WHERE Version LIKE "<Version>" AND BuildNumber = "<Build>" AND ( ProductType = "2" or ProductType = "3" )

Für <Version> gilt bei Windows Client OS:

Windows 11:              10.0%
     Windows 11 Version 21H2:     10.0.22000
Windows 10:              10.0%
     Windows 10 Version 21H2:     10.0.19044
     Windows 10 Version 21H1:     10.0.19043
     Windows 10 Version 20H2:     10.0.19042
     Windows 10 Version 2004:     10.0.19041
     Windows 10 Version 1909:     10.0.18363
     Windows 10 Version 1903:     10.0.18362
     Windows 10 Version 1809:     10.0.17763
     Windows 10 Version 1803:     10.0.17134
     Windows 10 Version 1709:     10.0.16299
     Windows 10 Version 1703:     10.0.15063
     Windows 10 Version 1607:     10.0.14393
     Windows 10 Version 1511:     10.0.10586
     Windows 10 Version 1507:     10.0.10240
Windows 8.1:              6.3%
Windows 8:                6.2%
Windows 7:                6.1%
Windows Vista:            6.0%
Windows XP:               5.1%

Für <Build> gilt bei Windows Client OS:

Windows 11 Version 21H2:  22000
Windows 10 Version 21H2:  19044
Windows 10 Version 21H1:  19043
Windows 10 Version 20H2:  19042
Windows 10 Version 2004:  19041
Windows 10 Version 1909:  18363
Windows 10 Version 1903:  18362
Windows 10 Version 1809:  17763
Windows 10 Version 1803:  17134
Windows 10 Version 1709:  16299
Windows 10 Version 1703:  15063
Windows 10 Version 1607:  14393
Windows 10 Version 1511:  10586
Windows 10 Version 1507:  10240
Windows 8.1:               9600
Windows 8:                 9200

Für <Version> gilt bei Windows Server OS:

Windows Server 2016-2022: 10.0%
Windows Server 2022: 10.0.20348 Windows Server 2019: 10.0.17763 Windows Server 2016: 10.0.14393 Windows Server 2012 R2: 6.3% Windows Server 2012: 6.2% Windows Server 2008 R2: 6.1% Windows Server 2008: 6.0% Windows Server 2003 R2: 5.2%

Für <Build> gilt bei Windows Server OS:

Windows Server 2022:      20348
Windows Server 2019: 17763 Windows Server 2016: 14393 Windows Server 2012 R2: 9600 Windows Server 2012: 9200

Neben der Versionsnummer und der Build-Nummer des Betriebssystems definiert der Product Type die Art des Betriebsssytems:

Client:             ProductType="1"
Server:             ProductType="3"
Domain Controller:  ProductType="2"
WMI Filter – Microsoft Office

root\CIMv2

Microsoft Office

SELECT path,filename,extension,version FROM CIM_DataFile WHERE (path='\\Program Files\\Microsoft Office\\<Folder>\\' OR path='\\Program Files (x86)\\Microsoft Office\\<Folder>\\') AND filename='winword' AND extension='exe' AND version > '<Version>'

Von Office 2016 zu Office 2019 hat sich die Versionsnummer leider nicht geändert (siehe Versionsübersicht unten), was eine Unterscheidung per WMI-Filter schwierig machen würde. Aber ab Office 2019 gibt es nur noch Click-To-Run Installer und keine Offline-Installationsmedien mehr. Deren Installationsverzeichnis weicht von den alten Installationsverzeichnissen ab. Daher lautet der WMI Filter ab Office 2019:

SELECT path,filename,extension,version FROM CIM_DataFile WHERE (path='\\Program Files\\Microsoft Office\\root\\<Folder>\\' OR path='\\Program Files (x86)\\Microsoft Office\\root\\<Folder>\\') AND filename='winword' AND extension='exe' AND version > '<Version>'

Für <Folder><Version> gilt bei Microsoft Office:

Microsoft Office 2021:  Office16 / 16.0
Microsoft Office 2019: Office16 / 16.0 Microsoft Office 2016: Office16 / 16.0 Microsoft Office 2013: Office15 / 15.0 Microsoft Office 2010: Office14 / 14.0 Microsoft Office 2007: Office13 / 13.0 Microsoft Office 2003: Office12 / 13.0
WMI Filter – Architektur

root\CIMv2

64 Bit Betriebssystemarchitektur

SELECT OSArchitecture FROM Win32_OperatingSystem WHERE OSArchitecture="64-Bit"
WMI Filter – Citrix

root\Citrix

Filterung auf Server einer Citrix XenApp/XenDesktop Farm (< XA/XD 7.x)

SELECT FarmName FROM Citrix_Farm WHERE FarmName = '<Farm-Name>'
WMI Filter – Windows Server Rollen

root\CIMv2

Remote Desktop Session Host

SELECT TerminalServerMode FROM Win32_TerminalServiceSetting WHERE TerminalServerMode = 1

Internet Information Services

SELECT Name FROM Win32_ServerFeature WHERE Name = 'Web Server (IIS)'
SELECT path,filename,extension FROM CIM_DataFile WHERE (path='\\inetpub\\') AND filename='public' AND extension='wmi'
WMI Filter – Applikationen

root\CIMv2

Google Chrome

SELECT path,filename,extension,version FROM CIM_DataFile WHERE (path='\\Program Files\\Google\\Chrome\\Application\\' OR path='\\Program Files (x86)\\Google\\Chrome\\Application\\') AND filename='chrome' AND extension='exe'

Analog dazu kann jegliche Applikation über die WMI-Pfadsuche abgefragt werden.

5 Antworten

  1. Stefan sagt:

    Vielen Dank für diesen Beitrag.
    Bzgl Office eine kleine Anmerkung:

    Für die Version 2019 (64bit) musste ich bei uns den Pfad anpassen auf
    \\Program Files\\Microsoft Office\\root\\Office16\\

    • Hallo Stefan
      Das ist korrekt, ab Office 2019 (und auch Office 365) gibt es ja nur noch Click-To-Run Installer und keine Offline-Installationsmedien mehr. Bei Click-To-Run ist der Pfad etwas anders, eben mit dem Ordner „root“ dazwischen. Office 2019 hat bislang deswegen in meiner Liste oben ja noch gefehlt, ich werde das vervollständigen.
      Gruß

  2. Genti sagt:

    Hallo zusammen

    Wie kann ich bei einer Softwareinstallation mit GPO, einen VMI-Filter setzten, welcher den Speicherplatz des C: Laufwerks überprüft? Resp. was ist der Query dafür?

    Danke & Gruss

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.