My name is Etienne Jeanneau and I’m a member of Citrix Support Escalation team in Dublin, Ireland.
One of my area of expertise is Citrix Application Streaming and I’ll try to blog about the cases that I find interesting and share the knowledge!
I will assume that you’re familiar with Citrix Application Streaming concepts (layers of glass anyone?) and that you’ve got some hands-on experience with the product.
Today, we’re going to have a look at streaming Adobe Acrobat 9.
The installer runs smoothly in the Streaming Profiler and the package is easily created. One thing to note is that Adobe Acrobat installs a service (FLEXnet licensing service) and therefore you will have to make sure you configure the AppHubWhiteList on the client machine. This is well documented here: http://support.citrix.com/article/CTX125284 and here: http://support.citrix.com/article/CTX125713.
Also, please make sure you’re using the Offline plug-in version >= 6.0.2 because of the following issue we fixed: http://support.citrix.com/article/CTX125108.
Now that we have our package and our client configured, let’s have a look at the description of the issue.
“When trying to create a PDF file from a Word document, we receive an error message.”
Note: Microsoft Office 2007 is installed locally.
The error message is the following:
Not very helpful… and the repair option does not work. 🙁
In this type of situation, the first thing I look at is a Process Monitor log to try to figure out what the application is trying to do.
As a general advice, try to keep your Process Monitor logs as short as you can! Just record what you need.
After filtering on “acrobat.exe”, I read the Process Monitor log starting from the end. Here is what I found:
As a side note, HKU\Rade-<GUID> is just a symbolic link to HKLM\Citrix\RadeCache\<GUID>. Symbolic links do not seem to be well documented on MSDN but Windows WOW64 architecture makes use of it: http://msdn.microsoft.com/en-us/library/aa384253%28v=vs.85%29.aspx.
As you can see, Adobe Acrobat is retrieving a printer name in the registry at the end of the trace just before displaying the error message.
The registry key is the following:
This key is located in the Installation/Execution image of the Application streaming layers of glass i.e. this is a registry key that the application created during installation in the Streaming Profiler.
The key value is “Adobe PDF”.
Mmmh, this looks suspicious to me as I know from experience that Adobe Acrobat creates a printer called “Adobe PDF” when it is installed locally.
As of the current release, Citrix Application Streaming cannot isolate a printer driver but nothing prevents us from creating a dummy printer called “Adobe PDF” on the client machine. Let’s do that then!
You can use any printer driver to create this printer, just make sure the printer is called “Adobe PDF”:
Now, let’s check what Adobe Acrobat has to say:
It seems we’ve made some progress!
Now, let’s try to run it with an administrator account. The streamed Adobe Acrobat is not published to the account but that’s no problem we can use the raderun.exe command line tool:
More information on how to use raderun.exe: http://support.citrix.com/article/CTX115191.
… and surprise! It works! It can create a PDF from a Word document successfully.
This now looks like a permission issue. Let’s fire up Process Monitor once again and filter on acrobat.exe and ACCESS DENIED entries:
For some reason, Adobe Acrobat needs the user to have full control on the following registry key inside the sandbox:
Let’s open up the package with the Streaming Profiler and modify the access to the registry key.
I gave full control to the Users group and saved the package.
Adobe Acrobat can now create PDF files from Word documents! 🙂
I hope you found this blog post interesting. Feel free to share any feedback or question through the comment section or email at etienne.jeanneau[at]citrix.com.