In recent years Microsoft seems to have headed down a path with it's own products. That is, in some cases they have provided generic installers which are usually small and require no scripting or packaging to configure for your environment. An example of this is Microsoft Lync, which has a small installer that you deploy and then configure on the end user devices using a Group Policy template and applying whatever settings suits your environment. This works well for applications such as Lync as it's an enterprise application and is almost certainly going to be deployed to a domain computer.
Well, The App-V 5.0 client is no different in this respect. There's an App-V Group Policy Template which is freely available for download HERE Microsoft have done a really good job at documenting the different options for configuring the App-V 5.0 Client using the Group Policy Template which you can find here HERE but this blog post is my attempt to encapsulate the different possible options for setting up the client and also illustrating the setup a little more. In the videos I uploaded recently, which you can find HERE I covered installing and configuring the App-V 5.0 Client using Powershell. In this blog post, I will detail a few different options you could use for packaging, scripting and deploying the App-V 5.0 client.
Firstly as stated, you can use the group policy template as stated for configuring the settings for the client, no matter what method you use for deploying the installer itself. So let's firstly cover deploying the group policy and what options can be configured within the Group Policy Template.
App-V 5.0 Group Policy Template
After installing the GPO App-V Administrative Template on your Server you should be able to create a Group Policy Object by browsing to Computer Configuration-->Administrative Templates-->Windows Settings-->System-->App-V.
The first available option to configure is under the CEIP folder. This option is for configuring whether or not you allow your client machines to report back to Microsoft for feedback purposes to provide them with data to drive further improvements to the tool.
The next folder down is for Client Co-Existence. You can enable Migration Mode which configure the client to handle Icons and FTA’s in a manner which allows both App-V 4.6SP2 and App-V 5.0 to live side by side on users machines. You may want this if you are migrating to App-V 5.0 but have not migrated all of your virtual applications, just yet.
The Integration folder covers different options which will depend on your desired environment. Integration Root Global settings allows you enable symbolic links to point to the All Users writeable location of %allusersprofile” which is C:\ProgramData.
The Root User setting allows you to enable symbolic links for the User Profile. I think, A good way of thinking about these too is machine vs user. Putting to C:\ProgramData is a common shared location, while user profile is user specific so not all other machine users will see this. This typically covers the location that file type associations and shortcuts get ‘written’
Roaming File Exclusions allow you to identify and detail any user folders that you do not wish to roam. Such as My Pictures
Roaming Registry Exclusions allows you to identify any registry hives that you may not wish to roam e.g. SOFTWARE\Classes
The Publishing Server Settings is the configuration for your Publishing Server, the backend server which your client will point to, to receive new packages, remove packages etc.
In my screenshot you can see the settings I have set for my environment. I have given my Server a friendly name which is just used for cosmetics. I entered the server URL which you receive in the last dialog of the App-V Management Server Wizard and is entered during that install.
There’s also Global Refresh options and User Refresh options. Global Refresh options again is like a machine based setting. The User Refresh is a setting for that user to refresh. Global offers you the possibility of deploying your App-V Applications to computer objects now, rather than User objects which previous version of App-V could only use. You can also set your Refresh Intervals which is good for ensuring load balancing of client refreshes to your servers. It ensures the clients only check in during certain intervals.
Under Reporting you have option to enable and configure your reporting for App-V which reports on Application usage back to your reporting database. Again this reporting Server URL was something you populated during the App-V Management Server setup.
Scripting now allows you much greater control, you can permit whether or not scripts can be used using the App-V 5.0 Configuration files. These Configuration files now offer a great flexibility which helps you to sequence applications, which may not have been able to be sequenced with previous versions. So this is likely something you would like to allow.
The streaming folder contains many different configurations. Beginning with “Allow First time application launches over a high cost Windows 8 metered connection” This one is a pretty cool option. If you have users with a Windows 8 tablet for example and they are operating on a 4G connection, you likely would not want them to launch and stream down an application that’s 2GB in size as that can be costly for the company. This is where this option comes in. The beauty of these settings being set by Group Policy also means you can set this policy and apply it to your tablets only, if that suits your environment.
Certificate Filter for client SSL allows you to configure a path to your trusted SSL Certificate store. If you use one in your environment.
Location Provider, This one baffles me, I have not seen any solid documentation on this. It states it specifies the CLSID for the Location Provider UI, I assume it’s a form of indexing to quickly allow the Location Provider tool to quickly display all packages…that’s my theory
Package Installation Root will specify where application could be installed and where updates could be applied.
Package Source Root carries over from the previous version. This can be used to override where the applications are grabbed from to download to the users. Can be useful when managing multiple App-V Management Server connections.
Re-establishment interval specifies how long the client waits before trying to re-establish a connection when a connection gets dropped e.g. 15 seconds, 30 seconds, 2 minutes etc.
Re-establishment retries dictates how many attempts the client should make. This is important as you don’t want all or a large number of your client, which may drop a connection to the server for one reason or another, trying to re-connect over and over for hours and hours, taxing your environment resources in the process.
Shared Content Store is an exciting new option which is great for VDI environment, it configures the client to never cache the virtual applications or associated data to the local hard disk. This can ensure you get to a non-persistent desktop as there’s no local disk requirements.
Specify what to load in the background is another option which remains from the previous version. You can choose to not background load any virtual applications, ensuring they only load when launched. You can choose to only load previously used applications or you could choose to background load all applications, ensuring outstanding applications background load and cache for that client.
Verify Certification revocation list. This ensure when using HTTPS there will be a validation for security purposes before allowing the stream.
Deploying the App-V Client using the Setup.exe
If you are deploying the App-V Client you need to ensure every end user device you are deploying virtual applications to has the necessary pre-requisites installed. These are .NET Framework 4.0, Powershell 3.0. The Client also requires C++ Redistributable 2005 SP1 and 2010 (these will be installed by the Setup.exe if they are not on the machine) A full list of pre-requisites for all App-V components can be found HERE
You can then deploy the appv_client_setup.exe which can be found in the MDOP disc by ensuring the pre-reqs are installed and then deploying using the following switches/arguments. e.g. appv_client_setup.exe /ACCEPTEULA=1 /MUOPTIN=0 /CEIPOPTIN=0 /q
If you are deploying using a deployment solution that offers a possibility to create an Uninstallation you can configure this to using the switches e.g. appv_client_setup.exe /UNINSTALL /q
You can then use the Group Policy template as mentioned above to configure the settings.
Alternatively if you would like to ensure the configurations are applied during installation, you can deploy the setup.exe and pass the applicable parameters for the setup you want e.g.
appv_client_setup.exe /ACCEPTEULA=1 /MUOPTIN=0 /CEIPOPTIN=0 /S1PUBLISHINGSERVERNAME="App-V Server" /S1PUBLISHINGSERVERURL="https://APPVMSERVER.Rorymon.com:317" S1USERREFRESHINTERVAL=4 /S1USERREFRESHINTERVALUNIT=Hour /q
This example is carrying out a silent installation of the App-V Client setting up my App-V Management Server with a refresh interval for the client set to every 4 hours. I also pass the early parameters to accept the license terms, I choose to not enable the Windows Updates for App-V and also Do not enable the option to report back to the Microsoft mothership for improvement of the product. and also obviously /q for a silent, unattended installation. You may want to refer to the Microsoft listed parameter options HERE as you may want to use GLOBAL parameters to enable machine based stream settings. You may want to change other settings such as how many times the client should try to re-establish a connection if the connection drops. Also, you may pass a parameter to certain end user devices to enable the Shared Content Store. That should be factored in when deploying using your deployment mechanism or scripting of choice.
Packaging and Deploying the App-V Client as an MSI
Another option is using the conventional method of MSI packaging. You need to ensure of course that your end user devices have all of the pre-requisites required before deploying the packaged MSI. To Package the MSI you'll want to use your favorite MSI editing tool to create a transform and modify some of the properties that are contained within the Properties table. You will also need to add the S1PUBLISHINGSERVERURL property as this is not set by default. Again, you can revert to the Microsoft site with the entire list of parameters for the different options you can set. The majority of these parameters are available in the MSI out of the box, so it's just a case of modifying the value to whatever you like.
You could create a transform for every site and configuration within your company. For example if you have Virtual Machines using a Shared Content Store you could have a transform with this setup configured. If, for some reason you have some clients configured for Global Refreshing and Use Refreshing you could have transforms for that. You may also set the Package Root for branch offices to override the source for the clients to download the virtual applications from etc. There's also a separate MSI which you may want to deploy also which requires no configuration. This MSI is a language configuration which may or may not be required depending on your environment and geography.
Hopefully I gave a pretty conclusive post on some of the options for deploying the App-V 5.0 Client.