I've been working for a while (3+ Months) on an upgrade for a customer. It seemed like a pretty straight forward project in concept; upgrade from XenDestkop 5.0 to 5.6FP1.
The first portion of the project (DDC) was very straight forward and was completed without complications. Everything worked as it should.
Part two was to update the gold images with the updated virtual desktop agent software and latest version of the receiver. This is where things went sideways.
Updated the OS by applying all the latest windows updates. All was fine.
Updated the client's AV software (Webroot SecureAnywhere). All was fine.
Updated the Citrix Receiver. All was fine.
Updated the Virtual Desktop Agent....all looked fine till after the required reboot...
Following the reboot the system booted fine and registered with the DDC. However upon login the Windows Explorer shell would crash and restart, crash and restart, crash and restart ... over and over and over.
Uninstall the VDA and everything is fine. Install 5.0 VDA and everything is fine. Install 5.5, 5.6, or 5.6.1 and we're back to the crashing explorer situation. A little more digging and we found that things would also stabilize if we removed Webroot. Really neither of these was an acceptable "solution" but we were able to use the 5.0 VDA and keep the users working.
I'm going to ignore the 3-months of troubleshooting, and the time spend on the phone with support collecting crash dumps and jump right to the conclusion.
In VDA version 5.5 (the next rev up from 5.0) Citrix introduced some new hooking mechanisms. Specifically adding createProcessHook.dll; which apparently is actually unused in the current (5.6FP1) version of the code, but is loaded to support future enhancements. If this .dll is renamed no ill effects are felt by the system. In this case renaming the .dll allows the 5.6FP1 VDA to be used with WebRoot without causing explorer.exe to crash.
So, hopefully sharing this brings someone else to the concusion quicker than I did. Webroot SecureAnywhere + Citrix XenDesktop VDA will result in an explorer crash. This can be corrected by renaming teh createProcessHook.dll in the VDA directory to anything else and rebooting the machine. (a tip, if you're using PVS, just mount the image on the PVS server, rename the file and unmount).