In my previous post which you can find here I briefly covered what roaming profiles and redirected folders were. I then demonstrated how to set up two file shares, one to act as a central repository for the Citrix User Profile Manager (UPM) (XenAppProfiles$) and the other to act as a central repository for the Users redirected folders.(XenAppUserHome$). I also showed you how to redirect your user’s folders using Group Policy. (With the exception of the user appdata folder)
Having completed the above tasks the next step is to install the Citrix UPM software on each of your XenApp application servers. To do this you need to download the UPM zip file and its contents from the My Citrix page under downloads. (Remember the My Citrix page from my first blog post?)
Profile Management 5.1.0 is available under XenApp 6.5 Feature Pack 2
Click on it to download and then click Download from the button in the right hand corner of the screen below
Allow Citrix to take your first born and click Accept
Click on Download now or Download your file manually depending on your preference
Once you have downloaded the zip file and extracted it you will see the contents below. The more eagle eyed amongst you will have noticed that I have extracted Profile Manager 4.1.2 and not 5.1.0 There are a number of reasons for this, the first is that the download for 5.1 was broken on the day I took the screenshots for this demo, the second is that I want to eventually do a post on upgrading from a previous version of Profile Manager to a newer one. As they say if you get lemons make lemonade so I decided to proceed with Profile Manager 4.1.2 for the demo.
As we are working in a Citrix XenApp 6.5 environment we will be installing the 64bit version of Citrix UPM on each of our Citrix XenApp application servers. profilemgt4.1.2_x64.msi will be available in the root folder of the extracted zip file. The install is fairly bog standard, click on Run
Accept defaults (unless you have a reason not to) and click next
Then restart the Citrix XenApp application server
The next important folder in the extracted contents of the Profile Management zip file is GPO_Templates, in this folder there are the Group Policy template files for a number of languages
We are now going to import the template into one of our existing Group Policy Objects. (GPOs) If you have read my previous blog posts you will of course remember that we originally created four GPOs. The WindowsServers GPO contains Windows Server policies, WindowsUsers contains Windows User policies, XenAppServers contains Citrix Server policies and finally XenAppUsers contains Citrix user policies. You can read the Group Policy article here
As the Citrix UPM policies are XenApp server specific I will be importing the Group Policy template file under the XenAppServers GPO which you can access under Group Policy Management Editor
Right click on Administrative Templates and click on Add/Remove Templates… This will open the dialogue box below. Click on Add…
Browse to the GPO_Templates folder (wherever you extracted it to), then choose a folder according to your required language (in this case en for English)
Then choose the ctxprofile4.1.1.adm as below (note the file name will be different if you download a different version of Citrix UPM.
You will now see the adm template in the dialogue box so just click close
Under Administrative Templates (ADM) you will now see a Citrix -> Profile Management folder structure. The two most important settings here are Enable Profile management which is the on/off switch for Citrix UPM and Path to user store where you will configure where you want your Citrix User Profiles to be saved.
You will remember from Part 1 of this article that we had previously created a share called XenAppProfiles$ to act as a central repository for our Citrix User Profiles. We will start by enabling the Path to user store setting and adding the absolute path \\11v-XA65AD-01\XenAppProfiles$\%username%, this will ensure that each user will have a user specific folder created for them on first use of the Citrix XenApp environment.
So now that you have gotten this far you need to leverage the various settings in your Citrix UPM Group Policy template to get the best possible user experience for your users. Rather than reinvent the wheel I am going to point you to the XenApp 6/6.5 Profile Optimization by Ryan Gallier, this is probably the most succinct article I have found on applying Citrix UPM policy to a small medium sized environment. Ryan even provides a screenshot of his UMP policy settings at the end of the article so click on the link above and have a read ASAP. Ryan’s settings are pretty much perfect for this demo environment so I am going to demonstrate how to apply them (for the beginners) and then I will move on to discuss a couple of other settings you may want to apply in a larger production environment.
Just to repeat myself, the Citrix UPM policies are XenApp server specific so I have imported the Group Policy template file under the XenAppServers GPO and it will be under this GPO which I will be applying the Citrix UPM settings.
The Citrix UPM settings can be found under Computer Configuration -> Administrative Templates -> Classic Administrative Templates (ADM) -> Citrix -> Profile Management.
In this case we will double click on Process logons of local administrators and tick the Enabled Radio button. Then click ok.
You will notice that Ryan has enabled the Processed groups setting, as this is a demo environment I am going to leave this un-configured (as below), if the policy setting is not configured and you have not used the INI file settings then all groups will be processes by Citrix UPM. For a production environment if you have different user and application groups you may consider turning this on.
Enable Process Internet cookie files on logoff which can be found under Citrix -> Advanced Settings. What you will lose in log off times you will gain in smaller profiles resulting in quicker logins for everyone.
As per Citrix Profile Management and VDI – Doing it Right! by Dan Allen you should exclude any directories from Citrix UPM that you have redirected and you should also exclude the majority of the Appdata directory unless you have an application with a specific dependency on a file or directory in this location.
Next step is to exclude the TranscodedWallpaper.jpg from UPM
Now that you have excluded your desired directories from the AppData folder you will need to do some testing on the applications you will be using in your XenApp environment to check if they have any AppData dependencies. Like Ryan I have included the standard Microsoft AppData dependencies along with the AppData\Google directory for the Chrome settings
It will be up to you to discover any similar dependencies for applications in your environment, for example if I was installing CRM 2011 in the demo environment I would include the AppData\Roaming\Microsoft\MSCRM folder in the list above
As per the advice in the help section of the Folders to mirror setting and Ryan’s template I have mirrored AppData\Roaming\Microsoft\Windows\Cookies
The next step is to enable Delete locally cached profiles on logoff (to avoid profile bloat on servers), enable local profile conflict handling to rename local profile (if it already exists) and disable migration of existing profiles (this is a demo environment with no existing profiles)
Finally comes the question of Profile Streaming. In a Small Medium Sized enterprise where you are dealing with relatively few users as per the scenarios faced by Ryan it is probably a good idea to disable profile streaming and I will be doing so for the demo environment.
Streaming allows for quick logins as the profile loads immediately and then copies the files that are needed as they are accessed. This has a high cost in terms of network bandwidth and I/O on your storage which may not be an ideal situation on a mid-range storage device or small company network. In an Enterprise Deployment where Multi-Tiered storage and Gigabit networks are in use streaming may come into play. Again it would need to be tested and measured against your requirements before being implemented. Also this would only be something to be considered if you had optimised your SMB 2.0 storage for XenApp 6.5 as discussed in this article by Trond Eirik Haavarsteinon.
You may also have noticed that Ryan excluded the Active write back setting in his UPM template. The Active write back setting solves what is known as the last writer wins problem with Windows Roaming Profiles. For example imagine you have XenApp sessions on 3 separate XenApp servers and you make a number of application settings changes on Server 1 and 2 and then close those applications and log out of those 2 servers. You continue to work on the application you have open on Server 3 and eventually close that also. The last writer wins problem now comes into effect as the settings changes you made on server 1 and 2 will now be overwritten by the profile on server 3 being written back to your centrally stored profile and in turn overwriting the settings you saved. Active write back as the name suggests writes back any changes you have made to your central profile while you are using it. As with the Streaming scenario in a small business environment with only a couple of XenApp servers and mid-level storage/network the I/O and bandwidth cost would likely outweigh the benefits. However in an Enterprise scenario where you could have dozens if not hundreds of XenApp servers with different applications on each then this Active write back setting becomes very important. In this case despite only having two XenApp application servers I am going to enable it.
The above are all the changes to the Citrix UPM Group Policy settings I am going to make for the moment. I would recommend reading the documentation on the other settings in the UPM GPO template to see if they will be needed for your specific setup.
Thanks for reading.