Platform specific application installs October 28, 2009

When adding applications in Microsoft Deployment Toolkit it is possible to associate them with a specific OS or platform.

For example, if I wanted to associate an application with “Windows XP – x86 (any service pack version)”, I would select the item in the MDT Management Console, “Properties”, “Details”, “This can run only on the specified client platform:” with the item:

All x86 Windows XP

When it comes time to install the application using ZTIApplications.wsf, the script will look up “All x86 Windows XP” in the file ZTISupportedPlatforms.xml and query the local machine using WMI Query Language (WQL):

SELECT * FROM Win32_OperatingSystem
WHERE BuildNumber = '2600' AND OSType=18
SELECT * FROM Win32_Processor
WHERE Architecture=0

In MDT 2008, if we wanted to have an application work on all x86 platforms, and *only* x86, then we would need to select more than one platform.

All x86 NT

All x86 Windows 2000

All x86 Windows XP

All x86 Windows Server 2003

All x86 Windows Server 2003 R2

All x86 Windows Vista

All x86 Windows 7 Client

All x86 Windows Server 2008

All x86 Windows Server 2008 R2

This became a bit of a pain when a new version of windows came along like Windows 7, and I wondered what would happen when Windows 8 came out. Would we need to change our definitions, yet again? The answer was yes.

This was made more complex by the limitations of the WMI provider we use to determine if an OS is x86 or x64, they are different for Windows 5.0 vs Windows 6.0. So there is no way we could create a single entry for “All x86” or “All x64”.

So for Microsoft Deployment Toolkit 2010, we created four new entries that are mostly OS version agnostic.

All x86 Pre-Vista

All x86 Vista and Newer

All x64 Pre-Vista

All x64 Vista and Newer

Including “All x86 Pre-Vista” and “All x86 Vista and Newer” in the property page of your Application will ensure that it won’t be installed on a x86 OS.