Configuration Manager doesn’t provide a way to differentiate between releases of Windows 10 when specifying requirements for an application package, but the Microsoft .NET Framework 3.5 feature source file differs between the two builds available at the time of this writing. (This may be true of all of Windows 10’s Features on Demand, but I haven’t checked any others.) We will also need a way to tell different releases of Windows 10 apart when installing .NET Framework 4.6.1. Therefore, we must make a custom Global Condition to provide the needed functionality for our application packages.
We need to find some attribute of the operating system that is unique between Windows 10 releases to test in our Global Condition . It turns out that Windows Management Instrumentation (WMI) has a property that we can use: the BuildNumber property of the Win32_OperatingSystem class. This returns—you guessed it—the Windows build number. Even though the build number is, well, a number, WMI defines this property as a string, so keep this in mind if you want to do value comparisons. For example, 10 > 9 (numeric comparison) but “10” < “9” (string comparison).
Global Conditions in Configuration Manager are located in the Software Library workspace under Application Management. I named my Global Condition “OS BuildNumber”, and here are its properties:
Property | Value |
---|---|
Name | OS BuildNumber |
Description | Returns the Windows build number from WMI. |
Device type | Windows |
Condition type | Setting |
Setting type | WQL Query |
Data type | String |
Namespace | root\cimv2 |
Class | Win32_OperatingSystem |
Property | BuildNumber |
WQL query WHERE clause | None (leave blank) |
Coming Up
Next time, we’ll use this new Global Condition to specify an installation requirement for a Configuration Manager Application deployment type.