Home » App-V » App-V 5.x » App-V 5 on Windows 10 x64 and Windows Server 2016

App-V 5 on Windows 10 x64 and Windows Server 2016

Posted on by

I’ve recently been working on an App-V 5 application where two variants are required – one is for Windows 10 x64 and one is for Windows Server 2016 (Citrix virtual desktop sessions).

To reduce administration, my current client wanted both App-V variants to be published to the same Active Directory group so that users could float between their standard desktops and Citrix sessions seamlessly.  My first thoughts were that I could simply set the ‘target OS’ condition for each variant….until I stumbled upon this:

Windows 10 Server 16 Target OS

In App-V 5 we can’t distinguish between Windows 10 x64 and Windows Server 2016 by using the ‘Target OS’ functionality.  So instead I wrote the following AddPackage script to add similar logic in the Deployment.config file:

<MachineScripts>
	<AddPackage>
		<Path>powershell.exe</Path>
		<Arguments>-ExecutionPolicy ByPass -WindowStyle Hidden -Command  "&amp; { if ([int](Get-CimInstance Win32_OperatingSystem | Select-Object -Expand ProductType) -eq 3) { Exit 0 } else { Exit 1 } }"</Arguments>
		<Wait RollbackOnError="true" Timeout="30"/>
	</AddPackage>
</MachineScripts>

This line of PowerShell merely checks to see if the current machine is a server platform (a ProductType of 3) or not (Work Station = 1, Domain Controller = 2, Server = 3).  If it is a server platform the script will return 0 and AddPackage will run successfully .  If it is not a server package the script will fail (return a non-zero value of 1) and roll back.  This will of course be silent to the end-user.

It doesn’t go into the granularity of checking the specific operating system, but it serves our purpose well since we are only packaging for Windows 10 and Server 2016.

 

Comments have now been disabled. If you have a question to ask about this post please ask the community!