WMI of Windows operating system stands Windows Management Instrumentation. It is nothing but a set of extensions to the Windows driver mode. The main function of WMI is to render interfaces through which instrumented components push notifications. It is the application of Web-Based Enterprise Management (WBEM) and Common Information Model (CIM) from the Distributed Management Task Force (DMTF). Very recently, many users are encountering an issue where the Win32_OperatingSystem BuildNumber is not working as they should be working normally. WMI comes pre-installed in Windows operating system since version 2000. As the Windows versions got newer and better, the WMI has also been replenished. It has a plethora of functionalities, such as, customizing settings, scheduling processes to run at certain times, changing permissions for authorized users and user groups, assigning and altering drive labels, backing up the object repository, and enabling or disabling error logging.
So now, what is the problem with the WMI Group Filter? Suppose, you want your Windows OS group policy to run for your Windows PC (version 8.1 and later). You are about to use a WMI Group Policy filter Win32_OperatingSystem BuildNumber for accomplishing the filtering function. Thus, create the following Windows Management Instrumentation (WMI) filter:
“Select BuildNumber from Win32_OperatingSystem WHERE BuildNumber >= 9200 “
Check out the following table to learn about the required version and the corresponding Build Number.
BUILD NUMBER | WINDOWS VERSION |
9200 | Windows 8 |
9600 | Windows 8.1 |
10240 | Windows 10 |
10586 | Windows 10, version 1511 |
14393 | Windows 10, version 1607 |
15063 | Windows 10, version 1703 |
16299 | Windows 10, version 1709 |
17134 | Windows 10, version 1803 |
17763 | Windows 10, version 1809 |
18362 | Windows 10, version 1903 |
Why Is It Happening?
The issue is that, Windows 10 Builds are not included in the filter list, although you want the WMI filter to cause the Group Policy setting to apply to build number 9200 and later. The main reason behind the problem is that the BuildNumber is a string datatype and not an integer value. Hence, they are considering 10*** < 9600.
How To Solve The Issue?
To resolve this issue, use a filter that resembles the following example:
Select BuildNumber from Win32_OperatingSystem WHERE BuildNumber >= 10000 AND BuildNumber LIKE “%[123456789][0123456789][0123456789][0123456789][0123456789]%” OR BuildNumber >= 9200 AND BuildNumber LIKE “%[123456789][0123456789][0123456789][0123456789]%”
Thanks to TheWindowsClub for the tip!