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/11 gibt es die Besonderheit, dass die Major Version bei allen bisherigen Releases gleich ist, man diese aber dennoch mit WMI unterschieden haben möchte. Entweder 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/11 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 22H2: 10.0.22621 Windows 11 Version 21H2: 10.0.22000 Windows 10: 10.0% Windows 10 Version 22H2: 10.0.19045 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 22H2: 22621 Windows 11 Version 21H2: 22000 Windows 10 Version 22H2: 19045 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.
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ß
Wie kann man noch zwischen den „16 er“ Versionen (z.B. Office 2019 vs M365) unterscheiden?
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
Hallo Genti
Was genau möchtest du abfragen? Die Laufwerksgröße oder den freien Speicherplatz?
Gruß
Andreas