<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Citrix on Remko's Blog</title><link>https://remkoweijnen.nl/blog/tags/citrix/</link><description>Recent content in Citrix on Remko's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 13 Dec 2017 13:53:08 +0000</lastBuildDate><atom:link href="https://remkoweijnen.nl/blog/tags/citrix/index.xml" rel="self" type="application/rss+xml"/><item><title>Change NetScaler Password Hash from SHA1 to SHA512</title><link>https://remkoweijnen.nl/blog/2017/12/13/change-netscaler-password-hash-sha1-sha512/</link><pubDate>Wed, 13 Dec 2017 13:53:08 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2017/12/13/change-netscaler-password-hash-sha1-sha512/</guid><description>&lt;p&gt;This morning I wanted to install the NetScaler patch for the TLS padding vulnerability and of course I made a backup before deploying it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: If you haven&amp;rsquo;t installed this patch yet I would recommended to do so: see &lt;a href="https://support.citrix.com/article/CTX230238"&gt;CTX230238&lt;/a&gt; and check out the &lt;a href="https://robotattack.org/"&gt;ROBOT attack -Return Of Bleichenbacher&amp;rsquo;s Oracle Threat&lt;/a&gt; page to check which other products you may have that are vulnerable.&lt;/p&gt;
&lt;p&gt;Upon checking the backups (I always download the backup and verify that the archive is intact) I noticed that one of my NetScaler&amp;rsquo;s uses SHA1 for the password hash whilst the other one uses SHA512:&lt;/p&gt;
&lt;p id="NVylnDh"&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2017/12/image.webp" class="glightbox" data-type="image" data-gallery="post-4167"&gt;&lt;img loading="lazy" decoding="async" style="display: inline;" title="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2017/12/image_thumb.webp" alt="image" width="432" height="90" /&gt;&lt;/a&gt;&lt;/p&gt;
I thought that this was a little strange as both NetScaler's are running the exact same build. However one of them (the one that uses SHA512) was reinstalled recently whilst the one using SHA1 has been upgraded.</description></item><item><title>Where does the Citrix Linux VDA store settings?</title><link>https://remkoweijnen.nl/blog/2017/03/23/where-does-the-citrix-linux-vda-store-settings/</link><pubDate>Thu, 23 Mar 2017 17:02:44 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2017/03/23/where-does-the-citrix-linux-vda-store-settings/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2017/03/image-21.webp" class="glightbox" data-type="image" data-gallery="post-4103"&gt;&lt;img loading="lazy" decoding="async" style="float: right; display: inline;" title="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2017/03/image_thumb-21.webp" alt="image" width="203" height="117" align="right" /&gt;&lt;/a&gt;I recently (well today really) started playing with the Citrix Linux VDA. I took Ubuntu to test because I happen to like Ubuntu.&lt;/p&gt;
&lt;p&gt;I didn&amp;rsquo;t get it to work correctly right away though and during troubleshooting I wanted to know where the VDA is storing it&amp;rsquo;s settings.&lt;/p&gt;
&lt;p&gt;I found the following file &lt;code&gt;/etc/xdl/ctx-vda.conf&lt;/code&gt; with the following contents:&lt;/p&gt;</description></item><item><title>Google Earth fix for XenApp, RDSH &amp; Horizon</title><link>https://remkoweijnen.nl/blog/2017/02/20/google-earth-fix-xenapp-rdsh-horizon/</link><pubDate>Mon, 20 Feb 2017 20:26:51 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2017/02/20/google-earth-fix-xenapp-rdsh-horizon/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2017/02/Google_Earth_logo.webp" class="glightbox" data-type="image" data-gallery="post-4004"&gt;&lt;img loading="lazy" decoding="async" class="alignnone" style="float: right; margin: 0px 0px 0px 5px; display: inline;" title="Google Earth Logo" src="https://remkoweijnen.nl/blog/wp-content/uploads/2017/02/Google_Earth_logo_thumb.webp" alt="Google Earth Logo" width="108" height="128" align="right" /&gt;&lt;/a&gt;Both Google Earth and Google Earth Enterprise do not work correctly for multiple users on shared Hosted Shared Desktops (I still prefer to call it Server Based Computing but that&amp;rsquo;s likely because I&amp;rsquo;m an oldtimer).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problem summary&lt;/strong&gt;&lt;br&gt;
So let&amp;rsquo;s look at the actual issue: the first user on a server is able to launch Google Earth but for any subsequent users on the same server Google Earth fails silently.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Problem details&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
Google Earth uses various synchronization objects such as Events and Mutexes but registers those in the &lt;strong&gt;\Global&lt;/strong&gt; namespace instead of the &lt;strong&gt;\Local&lt;/strong&gt; namespace.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>Show Client IP Address when using NetScaler as a Reverse Proxy</title><link>https://remkoweijnen.nl/blog/2017/02/10/show-client-ip-address-when-using-netscaler-as-a-reverse-proxy/</link><pubDate>Fri, 10 Feb 2017 14:10:45 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2017/02/10/show-client-ip-address-when-using-netscaler-as-a-reverse-proxy/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2017/02/image-3.webp" class="glightbox" data-type="image" data-gallery="post-3963"&gt;&lt;img loading="lazy" decoding="async" style="float: right; display: inline;" title="Citrix NetScaler" src="https://remkoweijnen.nl/blog/wp-content/uploads/2017/02/image_thumb-3.webp" alt="Citrix NetScaler Logo" width="144" height="77" align="right" /&gt;&lt;/a&gt;Recently I switched over my blog from a hoster to a self hosted VM. In my setup I am using Citrix NetScaler as a reverse proxy.&lt;/p&gt;
&lt;p&gt;Simular to when you&amp;rsquo;re using a 3rd party reverse proxy such as &lt;a href="https://www.cloudflare.com/"&gt;CloudFlare&lt;/a&gt; you will see the IP address from the reverse proxy instead of the actual Client IP Address on your webserver.&lt;/p&gt;
&lt;p&gt;This means that your logging will all show the same, internal, IP address and that IP Based Access Rules will not work.&lt;/p&gt;
&lt;p&gt;Fortunately this is easy to solve by having NetScaler add the Client IP Address in the headers and rewriting the address on your webserver.&lt;/p&gt;</description></item><item><title>Citrix Receiver Unknown client error 1110</title><link>https://remkoweijnen.nl/blog/2017/02/07/3745/</link><pubDate>Tue, 07 Feb 2017 15:08:27 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2017/02/07/3745/</guid><description>&lt;p&gt;Citrix Receiver and StoreFront error messages are sometimes confusing or lacking details so I decided to make little blog notes about common issues when I see them. So without further ado here&amp;rsquo;s #1:&lt;/p&gt;
&lt;p&gt;In Citrix Receiver I tried to logon remotely via NetScaler Gateway and got the following error message: &amp;ldquo;&lt;em&gt;Cannot get your apps from the store&lt;/em&gt;&amp;rdquo;&lt;/p&gt;
&lt;figure&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2017/02/img_5899c6cbba7eb.webp" class="glightbox" data-type="image" data-gallery="post-3745"&gt;&lt;img loading="lazy" decoding="async" class="wp-image-3746 size-medium" src="https://remkoweijnen.nl/blog/wp-content/uploads/2017/02/img_5899c6cbba7eb-300x169.webp" alt="Cannot get your apps from the store" width="300" height="169" /&gt;&lt;/a&gt;&lt;figcaption&gt;Citrix Receiver&lt;/figcaption&gt;&lt;/figure&gt;</description></item><item><title>Shodan, search engine for IoT or hackers delight?</title><link>https://remkoweijnen.nl/blog/2016/05/14/shodan-search-engine-for-iot-or-hackers-delight/</link><pubDate>Sat, 14 May 2016 15:36:22 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2016/05/14/shodan-search-engine-for-iot-or-hackers-delight/</guid><description>&lt;p&gt;Today I stumbled upon &lt;a href="https://www.shodan.io/"&gt;Shodan&lt;/a&gt;, a search engine for devices and services.&lt;/p&gt; &lt;p&gt;I decided to search for Citrix and this was the first page of results: &lt;br /&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2016/05/SNAGHTMLf942758.webp" class="glightbox" data-type="image" data-gallery="post-3688"&gt;&lt;img loading="lazy" decoding="async" title="SNAGHTMLf942758" style="display: inline" alt="SNAGHTMLf942758" src="https://remkoweijnen.nl/blog/wp-content/uploads/2016/05/SNAGHTMLf942758_thumb.webp" width="360" height="291" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;It's interesting to see that we get details such as the name of published applications. But it's possible to get even more details:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2016/05/SNAGHTMLf96a047.webp" class="glightbox" data-type="image" data-gallery="post-3688"&gt;&lt;img loading="lazy" decoding="async" title="SNAGHTMLf96a047" style="display: inline" alt="SNAGHTMLf96a047" src="https://remkoweijnen.nl/blog/wp-content/uploads/2016/05/SNAGHTMLf96a047_thumb.webp" width="344" height="235" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt;</description></item><item><title>Citrix PVS RAM cache size Performance Counters</title><link>https://remkoweijnen.nl/blog/2016/03/30/citrix-pvs-ram-cache-size-performance-counters/</link><pubDate>Wed, 30 Mar 2016 14:58:54 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2016/03/30/citrix-pvs-ram-cache-size-performance-counters/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2016/03/clip_image002.jpg" class="glightbox" data-type="image" data-gallery="post-3655"&gt;&lt;img loading="lazy" decoding="async" title="clip_image002" style="float: right; display: inline" hspace="12" alt="clip_image002" src="https://remkoweijnen.nl/blog/wp-content/uploads/2016/03/clip_image002_thumb.jpg" width="88" align="right" height="88" /&gt;&lt;/a&gt; &lt;p&gt;There has long &lt;a href="http://andrewmorgan.ie/2015/08/accurately-checking-the-citrix-pvs-cache-in-ram-overflow-to-disk-ram-cache-size/"&gt;been a debate&lt;/a&gt; about how to accurately view the size of your Citrix Provisioning Services ram cache size. SO much so that even &lt;a href="https://www.citrix.com/blogs/2015/08/19/digging-into-pvs-with-poolmon-and-wpa/"&gt;Citrix clarified&lt;/a&gt; on how to view this detail using yet another tool &lt;/p&gt; &lt;p&gt;The thing is, this is all fine and well, but it&amp;rsquo;s a bit of a pig to actually get this data when you need it, or in an automated way. Wouldn&amp;rsquo;t it be better if we could have something easier?&lt;/p&gt; &lt;p&gt;Lately, &lt;a href="http://www.andrewmorgan.ie/"&gt;Andrew Morgan&lt;/a&gt; and I decided to sit down and create an easy to use, Windows performance counter for the key metrics in a PVS cache and provide them to the community for use.&lt;/p&gt; &lt;p&gt;These counters turned out to be fascinating, as they really show how the cache works.&lt;/p&gt; &lt;p&gt;Our latest counters (which can be downloaded below) provide the following counters for easy access:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2016/03/clip_image004.webp" class="glightbox" data-type="image" data-gallery="post-3655"&gt;&lt;img loading="lazy" decoding="async" title="PVS Ram cache size (MB) | PVS metadata size (MB) | PVS Write Cache VHD disk size (MB) | PVS Ram Cache Percent used" style="display: inline" alt="Performance Monitor" src="https://remkoweijnen.nl/blog/wp-content/uploads/2016/03/clip_image004_thumb.webp" width="411" height="325" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;PVS Ram cache size (MB)&lt;/li&gt; &lt;li&gt;PVS metadata size (MB)&lt;/li&gt; &lt;li&gt;PVS Write Cache VHD disk size (MB)&lt;/li&gt; &lt;li&gt;PVS Ram Cache Percent used. &lt;em&gt;&lt;/li&gt; &lt;i&gt; &lt;br /&gt;&lt;/em&gt; As there is no accurate way to detect how much ram is assigned to cache via Citrix Provisioning services, this value must be provided or this performance counter is missing. &lt;br /&gt;&lt;/i&gt;&lt;/ul&gt;&lt;/p&gt;</description></item><item><title>Synchronizing Citrix ShareFile with PowerShell</title><link>https://remkoweijnen.nl/blog/2015/01/28/synchronizing-citrix-sharefile-with-powershell/</link><pubDate>Wed, 28 Jan 2015 11:39:17 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2015/01/28/synchronizing-citrix-sharefile-with-powershell/</guid><description>&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2015/01/ShareFileLogo.gif" data-type="image" data-gallery="post-3555"&gt;&lt;img loading="lazy" decoding="async" title="ShareFileLogo" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; float: right; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="ShareFileLogo" src="https://remkoweijnen.nl/blog/wp-content/uploads/2015/01/ShareFileLogo_thumb.gif" width="64" align="right" height="64" /&gt;&lt;/a&gt;The Citrix ShareFile Sync application is quite limited in functionality, one of those limitations is that you can only synchronize to a single (one) local folder.&lt;/p&gt; &lt;p&gt;As Helge Klein wrote in his excellent article &amp;quot;&lt;a href="https://helgeklein.com/blog/2014/01/configuring-citrix-sharefile-sync-powershell/"&gt;Configuring Citrix ShareFile Sync from PowerShell&lt;/a&gt;&amp;quot; this is simply a GUI restriction and not a restriction in the actual ShareFile sync engine.&lt;/p&gt; &lt;p&gt;Helge describes that you can easily do this in PowerShell with the following example:&lt;/p&gt; 
&lt;div class="codecard"&gt;
 &lt;div class="codehead"&gt;
 &lt;span class="codefile"&gt;Add-SyncJob example&lt;/span&gt;
 &lt;span class="codetools" data-pagefind-ignore&gt;
 &lt;span class="codelang"&gt;powershell&lt;/span&gt;
 &lt;button class="codebtn" type="button" data-copy&gt;Copy&lt;/button&gt;
 &lt;a class="codebtn" download="add-syncjob-example.ps1" href="data:text/plain;charset=utf-8;base64,QWRkLVN5bmNKb2IgLUFwcGxpY2F0aW9uSWQgMSAtQXBwbGljYXRpb25OYW1lICJQb3dlclNoZWxsIiAtQWNjb3VudCBoZWxnZWtsZWluLnNoYXJlZmlsZS5jb20KLVJlbW90ZUZvbGRlck5hbWUgImZvYzg2YzE5LWQ5MDQtNDM0YS05ZDY3LXh4eHh4eHh4eHh4eCIgLUxvY2FsRm9sZGVyUGF0aCAiRDpcRGF0ZW5cU3luYyB0byBTaGFyZUZpbGUiCi1BdXRoVHlwZSA0IC1Vc2VyTmFtZSB4eHh4eHhAaGVsZ2VrbGVpbi5jb20gLVN5bmNEaXJlY3Rpb24gMiAtUGFzc3dvcmQgIk1ZIFNIQVJFRklMRSBQQVNTV09SRCI="&gt;Download&lt;/a&gt;
 &lt;/span&gt;
 &lt;/div&gt;
 &lt;div class="codebody"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-powershell" data-lang="powershell"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Add-SyncJob&lt;/span&gt; &lt;span class="n"&gt;-ApplicationId&lt;/span&gt; &lt;span class="mf"&gt;1&lt;/span&gt; &lt;span class="n"&gt;-ApplicationName&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;PowerShell&amp;#34;&lt;/span&gt; &lt;span class="n"&gt;-Account&lt;/span&gt; &lt;span class="n"&gt;helgeklein&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;sharefile&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;-RemoteFolderName&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;foc86c19-d904-434a-9d67-xxxxxxxxxxxx&amp;#34;&lt;/span&gt; &lt;span class="n"&gt;-LocalFolderPath&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;D:\Daten\Sync to ShareFile&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;-AuthType&lt;/span&gt; &lt;span class="mf"&gt;4&lt;/span&gt; &lt;span class="n"&gt;-UserName&lt;/span&gt; &lt;span class="n"&gt;xxxxxx&lt;/span&gt;&lt;span class="nv"&gt;@helgeklein&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;com&lt;/span&gt; &lt;span class="n"&gt;-SyncDirection&lt;/span&gt; &lt;span class="mf"&gt;2&lt;/span&gt; &lt;span class="n"&gt;-Password&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;MY SHAREFILE PASSWORD&amp;#34;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;While the command was accepted, nothing was synchronized.&lt;/p&gt;</description></item><item><title>Convert Citrix License Server VPX to OVF</title><link>https://remkoweijnen.nl/blog/2013/09/27/convert-citrix-license-server-vpx-to-ovf/</link><pubDate>Fri, 27 Sep 2013 16:41:54 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2013/09/27/convert-citrix-license-server-vpx-to-ovf/</guid><description>&lt;p&gt;I wanted to run a virtual Citrix License server in my LAB. &lt;/p&gt; &lt;p&gt;Unfortunately Citrix only provides the &lt;a href="http://www.citrix.com/downloads/licensing/license-server/license-server-vpx-version-1110.html" target="_blank"&gt;VPX License Server&lt;/a&gt; in XenServer format (.xva). If you want to run the VPX on VMware ESX or Microsoft Hyper-V you need to convert it first.&lt;/p&gt; &lt;p&gt;The option to convert a Xen Virtual Appliance to OVF format was removed in XenConvert 2.4.1. So for a conversion you need version 2.3.1.&lt;/p&gt; &lt;p&gt;Here are the direct download links:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;font color="#35383d"&gt;&lt;a href="http://downloadns.citrix.com.edgesuite.net/akdlm/5320/XenConvert_Install.exe" target="_blank"&gt;XenConvert 2.3.1 (Windows 32-bit)&lt;/a&gt;&lt;/font&gt;&lt;/li&gt; &lt;li&gt;&lt;font color="#35383d"&gt;&lt;a href="http://downloadns.citrix.com.edgesuite.net/akdlm/5322/XenConvert_Install_x64.exe" target="_blank"&gt;XenConvert 2.3.1 (Windows 64-bit)&lt;/a&gt;&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt; &lt;p&gt;However when I tried to convert the downloaded VPX (Citrix_License_Server_VPX_v11.10.0_Build_12002.xva) I got the error &amp;quot;Failed to decode tar header record&amp;quot;:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/09/SNAGHTML490f56b6.webp" class="glightbox thickbox" data-type="image" data-gallery="post-3397"&gt;&lt;img loading="lazy" decoding="async" title="Citrix XenConvert 2.3.1" style="display: inline" alt="Failed to decode tar header record" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/09/SNAGHTML490f56b6_thumb.webp" width="400" height="275" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt;</description></item><item><title>Run a Process when Citrix Receiver Exits</title><link>https://remkoweijnen.nl/blog/2013/09/24/run-a-process-when-citrix-receiver-exits/</link><pubDate>Tue, 24 Sep 2013 16:11:59 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2013/09/24/run-a-process-when-citrix-receiver-exits/</guid><description>&lt;p&gt;A while ago I was doing some research for &lt;a href="https://remkoweijnen.nl/blog/2013/08/10/magic-filter-preview/" target="_blank"&gt;Magic Filter&lt;/a&gt; when I stumbled upon something interesting within Receiver.&lt;/p&gt;
&lt;p&gt;Inside wfica32.exe is a function called &lt;em&gt;_Eng_RunExecutableOnExit. &lt;/em&gt;That name caught my interest, I&amp;rsquo;ve made it a little more readable with Ida Pro:&lt;/p&gt;</description></item><item><title>Magic Filter Preview</title><link>https://remkoweijnen.nl/blog/2013/08/10/magic-filter-preview/</link><pubDate>Sat, 10 Aug 2013 16:34:26 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2013/08/10/magic-filter-preview/</guid><description>&lt;p&gt;In Enterprise environments users are often working on a remote (virtual) desktop such as when using SBC or VDI.&lt;/p&gt; &lt;p&gt;They typically get a full screen session, perhaps on a thin client, and have not idea that they are using a remote desktop.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;The Problem&lt;/u&gt;&lt;/strong&gt; &lt;br /&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/08/image10.webp" class="glightbox thickbox" data-type="image" data-gallery="post-3338"&gt;&lt;img loading="lazy" decoding="async" title="image" style="float: right; display: inline" alt="image" align="right" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/08/image_thumb8.webp" width="136" height="73" /&gt;&lt;/a&gt;However when they press Ctrl-Alt-Delete they get either the local Security Attention Screen / Task Manager or nothing at all if it has been blocked.&lt;/p&gt; &lt;p&gt;Clever users know they can use alternative key combinations such as &lt;em&gt;Shift-F2&lt;/em&gt; for Citrix or &lt;em&gt;Ctrl-Alt-End&lt;/em&gt; for RDS.&lt;/p&gt; &lt;p&gt;But that's not the seamless experience we want to give our users, is it?&lt;/p&gt;</description></item><item><title>PNAgent Icon Data Algorithm</title><link>https://remkoweijnen.nl/blog/2013/08/08/pnagent-icon-data-algorithm/</link><pubDate>Thu, 08 Aug 2013 17:34:05 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2013/08/08/pnagent-icon-data-algorithm/</guid><description>&lt;p&gt;Some time ago I wrote about the &lt;a href="https://remkoweijnen.nl/blog/2012/02/13/scripting-citrix-online-plugin-settings/" target="_blank"&gt;PNAgent data&lt;/a&gt; that is stored in the registry in XML format.&lt;/p&gt;
&lt;p&gt;After that post &lt;a href="http://andrewmorgan.ie/" target="_blank"&gt;Andrew Morgan&lt;/a&gt; asked me if I could extract the PNAgent icons from the XML data.&lt;/p&gt;
&lt;p&gt;That got me interested so let&amp;rsquo;s look at this data!&lt;/p&gt;
&lt;p&gt;If you look at XML from PNAgent the icondata as in the AppData.Details.Icon node you&amp;rsquo;ll see something like this:&lt;/p&gt;
&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/08/image5.webp" data-type="image" data-gallery="post-3330"&gt;&lt;img loading="lazy" decoding="async" style="display: inline;" title="image" alt="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/08/image_thumb3.webp" width="408" height="369" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Seems like the icon data is stored/encrypted in a proprietary format.&lt;/p&gt;</description></item><item><title>Redirect Registry by Modifying .NET Executable</title><link>https://remkoweijnen.nl/blog/2013/05/30/redirect-registry-by-modifying-net-executable/</link><pubDate>Thu, 30 May 2013 16:18:23 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2013/05/30/redirect-registry-by-modifying-net-executable/</guid><description>&lt;p&gt;Yesterday I was troubleshooting an application that was migrated to Citrix XenApp. &lt;/p&gt; &lt;p&gt;The application is able to use a high precision scale which is attached to the client pc's com port. This com port is redirected to XenApp.&lt;/p&gt; &lt;p&gt;While testing users reported several issues, let's have a look at them.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Error configuring COM Port&lt;/u&gt;&lt;/strong&gt; &lt;br /&gt;Within the application the comport to which the scale is connected must be configured:&lt;/p&gt; &lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/05/image3.webp" data-type="image" data-gallery="post-3284"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="Compoort instellen" alt="De compoort lezer staat uit" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/05/image_thumb3.webp" width="240" height="95" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;After pressing &amp;quot;Registreer&amp;quot; to register the new com port the following error message was shown&lt;/p&gt; &lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/05/image4.webp" data-type="image" data-gallery="post-3284"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="Fout" alt="Er staat geen compoort in het register. Registreer eerste de juiste compoort" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/05/image_thumb4.webp" width="240" height="58" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Scriptable Citrix Password Encoder</title><link>https://remkoweijnen.nl/blog/2013/03/19/scriptable-citrix-password-encoder/</link><pubDate>Tue, 19 Mar 2013 16:27:49 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2013/03/19/scriptable-citrix-password-encoder/</guid><description>&lt;p&gt;A while ago I &lt;a href="https://remkoweijnen.nl/blog/2012/05/13/encoding-and-decoding-citrix-passwords/"&gt;published&lt;/a&gt; a tool to Encode and Decode Citrix passwords. Today I am publishing a small update to this tool that makes it scriptable by adding a &lt;a href="http://en.wikipedia.org/wiki/Component_Object_Model" target="_blank"&gt;COM interface&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you start the tool without parameters you will get the GUI, just like before:&lt;/p&gt; &lt;p&gt;&lt;img loading="lazy" decoding="async" title="Citrix Password Hasher by Remko Weijnen" alt="Encrypt | Decrypt Password | Hash | Citrix | Ctx1" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/05/image_thumb3.webp" width="419" height="84" /&gt;&lt;/p&gt; &lt;p&gt;To use the COM interface you first need to register the executable with the /regserver switch:&lt;/p&gt; &lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/03/SNAGHTML185eb4ec.webp" data-type="image" data-gallery="post-3152"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="Register CtxPass" alt="CtxPass /RegServer" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/03/SNAGHTML185eb4ec_thumb.webp" width="414" height="64" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;After the registration you can call it using any language that supports COM. To get you started I wrote a few examples&lt;/p&gt;</description></item><item><title>The case of the COM Port Redirection</title><link>https://remkoweijnen.nl/blog/2013/03/11/the-case-of-the-com-port-redirection/</link><pubDate>Mon, 11 Mar 2013 14:53:44 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2013/03/11/the-case-of-the-com-port-redirection/</guid><description>&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/03/image.webp" data-type="image" data-gallery="post-3079"&gt;&lt;img loading="lazy" decoding="async" style="display: inline; float: right" title="Secutest" alt="Secutest" align="right" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/03/image_thumb.webp" width="128" height="122" /&gt;&lt;/a&gt;One of my colleagues asked me to assist in troubleshooting an application called SmartWare FM running on Citrix XenApp. &lt;/p&gt; &lt;p&gt;This application reads data from an external device called SECUTEST.&lt;/p&gt; &lt;p&gt;The device is connected to a COM port which is redirected to the XenApp session. In contrast to Microsoft Remote Desktop Services COM ports are not automatically redirected in XenApp but need to be mapped via eg a logonscript (NET USE COM1: \\Client\COM1:) or using UEM.&lt;/p&gt; &lt;p&gt;In my case the COM port was mapped with RES Workspace Manager:&lt;/p&gt; &lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/03/image1.webp" data-type="image" data-gallery="post-3079"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="image" alt="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/03/image_thumb1.webp" width="371" height="119" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Change Tab Order in an Executable</title><link>https://remkoweijnen.nl/blog/2013/01/02/change-tab-order-in-an-executable/</link><pubDate>Wed, 02 Jan 2013 15:03:14 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2013/01/02/change-tab-order-in-an-executable/</guid><description>&lt;p&gt;An application called Cardiology PACS was recently packaged for a Citrix XenApp environment. The functional tester reported a strange problem at the logon screen: after entering the username it was not possible to go to the password field with the TAB key.&lt;/p&gt;
&lt;p&gt;This was a strange observation since I cannot imagine XenApp interfering with tab stops. So what was going on?&lt;/p&gt;
&lt;p&gt;In the old situation the user was starting the application on his local pc. The application remembered the last username and pre-filled this, therefore the cursor was already in the Password field. The user simply entered his password and hit the Enter key:&lt;/p&gt;
&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/01/image.webp" data-type="image" data-gallery="post-2955"&gt;&lt;img loading="lazy" decoding="async" style="display: inline;" title="image" alt="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/01/image_thumb.webp" width="240" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On XenApp the Username field is not pre-filled because the last username is kept globally per machine. Therefore the user has to enter both the username and the password:&lt;/p&gt;
&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2013/01/image1.webp" data-type="image" data-gallery="post-2955"&gt;&lt;img loading="lazy" decoding="async" style="display: inline;" title="image" alt="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2013/01/image_thumb1.webp" width="240" height="190" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I tested the Tab key behavior in both situations and as I expected it didn&amp;rsquo;t work in both situations. This happens because the Tab Order has been messed up by the programmer (if you press Tab 9 times you do end up in the Username field).&lt;/p&gt;
&lt;p&gt;Because this is something that would annoy me if I were the user I decided to fix it.&lt;/p&gt;</description></item><item><title>License Check fails on Citrix XenApp</title><link>https://remkoweijnen.nl/blog/2012/12/07/license-check-fails-on-citrix-xenapp/</link><pubDate>Fri, 07 Dec 2012 16:30:07 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/12/07/license-check-fails-on-citrix-xenapp/</guid><description>&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/image14.webp" data-type="image" data-gallery="post-2870"&gt;&lt;img loading="lazy" decoding="async" style="display: inline; float: right;" title="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/image_thumb14.webp" alt="image" width="70" height="65" align="right" /&gt;&lt;/a&gt;Today I was asked to assist in getting an Excel Add-In to work on Citrix XenApp.&lt;/p&gt;
&lt;p&gt;The application was packaged into a Thinapp by one of our package engineers.&lt;/p&gt;
&lt;p&gt;However when testing the Add-In on Citrix XenApp the following message appeared:&lt;/p&gt;
&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/image15.webp" data-type="image" data-gallery="post-2870"&gt;&lt;img loading="lazy" decoding="async" style="display: inline;" title="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/image_thumb15.webp" alt="image" width="240" height="68" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Apparently this application does a license check that fails when run from another server (how bad).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Disclaimer&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
Before we go on: I would like to make clear that my goal is not to be able to use an application without license. I am just trying to make it work within the customer&amp;rsquo;s environment.&lt;/p&gt;</description></item><item><title>Application Hangs when Scanning in Citrix XenApp</title><link>https://remkoweijnen.nl/blog/2012/12/06/application-hangs-when-scanning-in-citrix-xenapp/</link><pubDate>Thu, 06 Dec 2012 16:10:50 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/12/06/application-hangs-when-scanning-in-citrix-xenapp/</guid><description>&lt;p&gt;Another interesting issue today with an application that runs on Citrix XenApp.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Environment&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
Customer has a Citrix XenApp 5 environment running on Windows Server 2003. Clients are all Windows XP and run the Citrix Online Plugin 12.3 full screen.&lt;/p&gt;
&lt;p&gt;RES Workspace Extender is used to integrate locally installed application into the XenApp Session. Users have no access to the local desktop.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Symptoms&lt;/span&gt;&lt;/strong&gt;&lt;br&gt;
This particular application scans invoices using a USB scanner attached to the client and runs them trough a workflow.&lt;br&gt;
Whenever the Start scan button was pressed the application froze.&lt;/p&gt;
&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/SNAGHTML48ec098.webp" data-type="image" data-gallery="post-2814"&gt;&lt;img loading="lazy" decoding="async" style="display: inline;" title="SNAGHTML48ec098" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/SNAGHTML48ec098_thumb.webp" alt="SNAGHTML48ec098" width="408" height="308" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>File not found error when scanning using Twain Redirection in Citrix XenApp</title><link>https://remkoweijnen.nl/blog/2012/12/04/file-not-found-error-when-scanning-using-twain-redirection-in-citrix-xenapp/</link><pubDate>Tue, 04 Dec 2012 15:07:10 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/12/04/file-not-found-error-when-scanning-using-twain-redirection-in-citrix-xenapp/</guid><description>&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/image.webp" data-type="image" data-gallery="post-2795"&gt;&lt;img loading="lazy" decoding="async" style="margin: 0px 0px 2px; display: inline; float: right;" title="Twain" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/12/image_thumb.webp" alt="Twain Logo" width="75" height="70" align="right" /&gt;&lt;/a&gt;Scanners attached to client machines can be used from within a Citrix XenApp session via a mechanism called Twain Redirection.&lt;/p&gt;
&lt;p&gt;For this mechanism to work correctly the file twain_32.dll must be present in the Windows directory.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #35383d;"&gt;On Windows 2008 this dll should be copied from winsxs (side by side) to the windows directory as described in &lt;a href="http://support.citrix.com/article/CTX123981"&gt;CTX123981&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;On Windows 2003 the dll is already in the correct directory, however applications that are not &lt;a href="http://msdn.microsoft.com/en-us/library/01cfys9z%28v=vs.80%29.aspx"&gt;Terminal Server Aware&lt;/a&gt; cannot find this dll because the Windows directory is redirected to the user profile. Citrix recommends copying twain_32.dll to each user&amp;rsquo;s profile directory but this will take up unnecessary space.&lt;/p&gt;
&lt;p&gt;So what alternatives do we have?&lt;/p&gt;</description></item><item><title>Screen flickering with PowerPoint 2010 on Citrix XenApp</title><link>https://remkoweijnen.nl/blog/2012/11/30/screen-flickering-with-powerpoint-2010-on-citrix-xenapp/</link><pubDate>Fri, 30 Nov 2012 14:18:22 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/11/30/screen-flickering-with-powerpoint-2010-on-citrix-xenapp/</guid><description>&lt;p&gt;Within half an hour of writing the article &amp;quot;&lt;a href="https://remkoweijnen.nl/blog/2012/11/30/application-causes-screen-flickering-in-citrix-xenapp-session/"&gt;Application causes Screen Flickering in Citrix XenApp Session&lt;/a&gt;&amp;quot; I got a message that the hotfix in that article also fixes a similar problem in PowerPoint 2010.&lt;/p&gt; &lt;p&gt;Office 2010 uses hardware acceleration for displaying images and when this is enabled (which is the default) you will see constant screen flicker when you try to display a presentation with Images on Citrix XenApp (Server 2003):&lt;/p&gt; &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:1baf0443-1822-4d90-8c1b-cf6059f5de34" class="wlWriterEditableSmartContent"&gt;&lt;div&gt;&lt;object width="448" height="252"&gt;&lt;param name="movie" value="http://www.youtube.com/v/uhWNwQQUZ3o?hl=en&amp;amp;hd=1"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/uhWNwQQUZ3o?hl=en&amp;amp;hd=1" type="application/x-shockwave-flash" width="448" height="252"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style="width:448px;clear:both;font-size:.8em"&gt;Screen Flickering when running WPF Applications on Citrix XenApp&lt;/div&gt;&lt;/div&gt; &lt;p&gt;&amp;#160;&lt;/p&gt;</description></item><item><title>Application causes Screen Flickering in Citrix XenApp Session</title><link>https://remkoweijnen.nl/blog/2012/11/30/application-causes-screen-flickering-in-citrix-xenapp-session/</link><pubDate>Fri, 30 Nov 2012 13:28:54 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/11/30/application-causes-screen-flickering-in-citrix-xenapp-session/</guid><description>&lt;p&gt;Yesterday I was asked to troubleshoot an interesting issue with an application running on Citrix XenApp.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="text-decoration: underline;"&gt;Environment&lt;br&gt;
&lt;/span&gt;&lt;/strong&gt;This customer is running Citrix XenApp 5 on Windows Server 2003 (x86). On the Client Side the Online Plugin version 12.3 is used.&lt;/p&gt;
&lt;p&gt;&lt;span style="text-decoration: underline;"&gt;&lt;strong&gt;The Problem&lt;/strong&gt;&lt;/span&gt;&lt;br&gt;
When this particular application was active the screen was flickering and black blocks appeared at seemingly random places. Further more it was not possible to resize the window:&lt;/p&gt;
&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/11/image.webp" data-type="image" data-gallery="post-2778"&gt;&lt;img loading="lazy" decoding="async" style="display: inline;" title="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/11/image_thumb.webp" alt="image" width="425" height="239" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;My experience is that display issues are often related to either HDX Flash Redirection (offloading flash to the client) or the Multi Monitor hook.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;</description></item><item><title>Citrix License Server Crash</title><link>https://remkoweijnen.nl/blog/2012/08/23/citrix-license-server-crash/</link><pubDate>Thu, 23 Aug 2012 15:29:40 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/08/23/citrix-license-server-crash/</guid><description>&lt;p&gt;After updating a Citrix License server from 11.6.1 to 11.10 the Citrix Licensing Service crashed immediately after startup.&lt;/p&gt; &lt;p&gt;In the Event Log the following error was shown:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/08/image12.webp" class="glightbox thickbox" data-type="image" data-gallery="post-2743"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="Event ID 1000 | Category 100 | Citrix Licensing Service" alt="Application Error | Faulting application lmadmin.exe, version 11.10.0.9, faulting module msvcp80.dll, version 8.0.50727.6195, fault address 0x000038db" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/08/image_thumb12.webp" width="216" height="240" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I suspected that there was a corrupt licensing file in the MyFiles folder (Default C:\Program Files\Citrix\Licensing\MyFiles).&lt;/p&gt;</description></item><item><title>Modify VB Executable to force Taskbar Button</title><link>https://remkoweijnen.nl/blog/2012/08/04/modify-vb-executable-to-force-taskbar-button/</link><pubDate>Sat, 04 Aug 2012 11:07:18 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/08/04/modify-vb-executable-to-force-taskbar-button/</guid><description>&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/08/image.webp" data-type="image" data-gallery="post-2693"&gt;&lt;img loading="lazy" decoding="async" style="display: inline; float: right" title="image" alt="image" align="right" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/08/image_thumb.webp" width="97" height="93" /&gt;&lt;/a&gt;I had to troubleshoot an application that was published with Citrix XenApp. The problem with this application was that it didn't have an button/icon in the taskbar and the window would sometimes disappear.&lt;/p&gt; &lt;p&gt;I noticed that this (cr)application was written in Visual Basic, so I decided to run it through a &lt;a href="http://www.vb-decompiler.org/"&gt;decompilation tool&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;The decompiler was able to list the forms used in the Application:&lt;/p&gt; &lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/08/image1.webp" data-type="image" data-gallery="post-2693"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="image" alt="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/08/image_thumb1.webp" width="123" height="142" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Excel 2010 multi-threaded calculation</title><link>https://remkoweijnen.nl/blog/2012/06/08/excel-2010-multi-threaded-calculation/</link><pubDate>Fri, 08 Jun 2012 13:21:19 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/06/08/excel-2010-multi-threaded-calculation/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/01/image10.webp" class="glightbox" data-type="image" data-gallery="post-2642"&gt;&lt;img loading="lazy" decoding="async" style="display: inline; float: right" title="Excel 2007 Icon" alt="Excel 2007 Icon" align="right" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/01/image_thumb10.webp" width="67" height="65" /&gt;&lt;/a&gt;I was just browsing through the Options tab in Excel 2010 when I noticed the following setting:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/06/image2.webp" class="glightbox thickbox" data-type="image" data-gallery="post-2642"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="image" alt="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/06/image_thumb2.webp" width="318" height="113" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;p&gt;This feature was introduced in Excel 2007. &lt;br /&gt;In the default settings, multi-threaded calculation is Enabled with &amp;quot;Use all processors on this computer&amp;quot;.&lt;/p&gt; &lt;p&gt;On a physical desktop this would be the preferred setting since it will make formula calculation as fast as possible.&lt;/p&gt;</description></item><item><title>Decoding Citrix IMA Datastore Password</title><link>https://remkoweijnen.nl/blog/2012/05/29/decoding-citrix-ima-datastore-password/</link><pubDate>Tue, 29 May 2012 21:46:30 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/05/29/decoding-citrix-ima-datastore-password/</guid><description>&lt;p&gt;This morning &lt;a href="http://www.twitter.com/arbeijer/status/207398601066942464"&gt;Arjan Beijer&lt;/a&gt; sent me an interesting link to a &lt;a href="http://www.youtube.com/watch?v=Cb8-kvJkojY"&gt;youtube video&lt;/a&gt; about obtaining the Citrix IMA Datastore password using Windbg.&lt;/p&gt;
&lt;p&gt;The video shows a method, discovered by &lt;a href="https://twitter.com/#!/fdwl"&gt;Denis Gundarev&lt;/a&gt; to obtain the IMA Datastore password. Basically he uses DSMaint.exe and set&amp;rsquo;s a breakpoint on the call to &lt;a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa380882(v=vs.85).aspx"&gt;CryptUnprotectData&lt;/a&gt; and then reads the password from memory.&lt;/p&gt;
&lt;p&gt;I tried to call the CryptUnprotectData API with the data read from the registry directly but this failed with error NTE_BAD_KEY_STATE, this is defined in winerror.h and it means &amp;ldquo;Key not valid for use in specified state&amp;rdquo;.&lt;/p&gt;</description></item><item><title>Citrix Launcher Progress Update 1</title><link>https://remkoweijnen.nl/blog/2012/05/17/citrix-launcher-progress-update-1/</link><pubDate>Thu, 17 May 2012 23:19:12 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/05/17/citrix-launcher-progress-update-1/</guid><description>&lt;p&gt;After figuring out how to &lt;a href="https://remkoweijnen.nl/blog/2012/05/13/encoding-and-decoding-citrix-passwords/"&gt;encode and decode the Citrix passwords&lt;/a&gt; my next step for the upcoming Citrix Launcher is experiment with config.xml and authenticating to the Citrix Web Interface.&lt;/p&gt;
&lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/05/image4.webp" data-type="image" data-gallery="post-2609"&gt;&lt;img loading="lazy" decoding="async" style="float: left; display: inline;" title="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/05/image_thumb4.webp" alt="image" width="45" height="39" align="left" /&gt;&lt;/a&gt;I imported the NFuse.dtd from the Citrix Web Interface into Delphi with the XML Data Binding Wizard. The results in an NFuse Unit so I can easily create the XML data.&lt;/p&gt;
&lt;p&gt;To create an authentication packet I use the following code:&lt;/p&gt;</description></item><item><title>Encoding and Decoding Citrix Passwords</title><link>https://remkoweijnen.nl/blog/2012/05/13/encoding-and-decoding-citrix-passwords/</link><pubDate>Sun, 13 May 2012 21:55:02 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/05/13/encoding-and-decoding-citrix-passwords/</guid><description>&lt;p&gt;I am working on a launcher tool for Citrix XenApp that can not only connect to a published application or published desktop but can also leverage Citrix Workspace Control to reconnect to disconnected and/or active sessions.&lt;/p&gt; &lt;p&gt;There doesn't seem to be any sdk that exposed the data we need so I am trying to reproduce what the Citrix online plugi-in does.&lt;/p&gt; &lt;p&gt;I used a HTTP monitoring tool to capture the traffic between the Online plug-in and the Web Interface. First the online plug-in will retrieve the config.xml from the server specified via the Change Server option:&lt;/p&gt; &lt;p&gt;&lt;a class="glightbox thickbox" href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/05/image2.webp" data-type="image" data-gallery="post-2586"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="Change Server - Citrix online plug-in" alt="What is the address of the server hosting your published resources? | Server Address | Example: servername (for non-secure connections) | https://servername (for secure connections)" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/05/image_thumb2.webp" width="240" height="167" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Cookie Error on Citrix XenApp</title><link>https://remkoweijnen.nl/blog/2012/03/29/cookie-error-on-citrix-xenapp/</link><pubDate>Thu, 29 Mar 2012 10:02:10 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/03/29/cookie-error-on-citrix-xenapp/</guid><description>&lt;p&gt;A user reported that the following error while visiting a website on a Citrix XenApp server:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/03/image26.webp" class="glightbox" data-type="image" data-gallery="post-2574"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="Cookie Error" alt="You must have cookies enabled in order to user this tool. Please reload the page and try again." src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/03/image_thumb26.webp" width="415" height="94" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;I tried adding the site to the Trusted Sites List and adding the url to the Per Site Privacy list:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/03/image27.webp" class="glightbox" data-type="image" data-gallery="post-2574"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="image" alt="image" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/03/image_thumb27.webp" width="415" height="256" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;But this didn't work, but I noticed that the site was "flickering" a lot so I suspected that HDX Flash Acceleration was the problem.&lt;/p&gt;</description></item><item><title>Convert MCli output into PowerShell Objects</title><link>https://remkoweijnen.nl/blog/2012/02/29/convert-mcli-output-into-powershell-objects/</link><pubDate>Wed, 29 Feb 2012 21:35:49 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/02/29/convert-mcli-output-into-powershell-objects/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/02/image21.webp" class="glightbox" data-type="image" data-gallery="post-2468"&gt;&lt;img loading="lazy" decoding="async" style="display: inline; float: right" title="image" alt="image" align="right" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/02/image_thumb21.webp" width="83" height="83" /&gt;&lt;/a&gt;I was experimenting today with the PowerShell cmdlets for Citrix Provisioning Server. I was surprised to learn that the output of these cmdlets are not PowerShell types such as collections and objects with methods and properties but just plain text output.&lt;/p&gt; &lt;p&gt;A google search for a method to quickly convert the garbage output to objects led me to &lt;a href="http://www.out-web.net/?p=599" target="_blank"&gt;this blog post&lt;/a&gt; by Frank Peter. He describes a clever use of the switch statement with regular expressions with the Get-DiskInfo cmdlet.&lt;/p&gt; &lt;p&gt;Using Frank's code as a basis I wrote a generic function that converts Mcli output to an array of objects.&lt;/p&gt;</description></item><item><title>Session freeze when starting Excel</title><link>https://remkoweijnen.nl/blog/2012/02/20/session-freeze-when-starting-excel/</link><pubDate>Mon, 20 Feb 2012 15:42:25 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/02/20/session-freeze-when-starting-excel/</guid><description>&lt;p&gt;&lt;strong&gt;Environment&lt;/strong&gt; &lt;br /&gt;Windows 2003 Enterprise (32 bit), Citrix XenApp 5, RES Workspace Manager 2011, McAfee VirusScan Enterprise 8.7.0i.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt; &lt;br /&gt;When a opening an Excel workbook from Sharepoint the whole session freezes.&lt;/p&gt; &lt;p&gt;I asked the user to open an Excel workbook from Sharepoint and I noticed the following popup:&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/02/image7.webp" class="glightbox" data-type="image" data-gallery="post-2450"&gt;&lt;img loading="lazy" decoding="async" style="display: inline" title="Message from webpage" alt="Some files can harm your computer. If the file information looks suspicious or you do not fully trust the source, do not open the file | You are opening the following file: | File name: My Workbook.xls | From: Sharepoint" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/02/image_thumb7.webp" width="415" height="97" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;So my first thought was that the user somehow clicked this message to the background and IE was waiting for a response.&lt;/p&gt;</description></item><item><title>The case of the Slow Xerox Universal Print Driver</title><link>https://remkoweijnen.nl/blog/2012/01/04/the-case-of-the-slow-xerox-universal-print-driver/</link><pubDate>Wed, 04 Jan 2012 22:54:29 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2012/01/04/the-case-of-the-slow-xerox-universal-print-driver/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/01/image9.webp" class="glightbox" data-type="image" data-gallery="post-2319"&gt;&lt;img loading="lazy" decoding="async" style="display: inline; float: right" title="Xerox Logo" alt="Xerox Logo" align="right" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/01/image_thumb9.webp" width="64" height="64" /&gt;&lt;/a&gt;Earlier this week I was asked to investigate a problem with the Xerox Universal Printer Driver. Users complained that printing to a Xerox printer was much slower than printing to an HP printer.&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2012/01/image10.webp" class="glightbox" data-type="image" data-gallery="post-2319"&gt;&lt;img loading="lazy" decoding="async" style="margin: 0px 9px 0px 0px; display: inline; float: left" title="Excel 2007 Icon" alt="Excel 2007 Icon" align="left" src="https://remkoweijnen.nl/blog/wp-content/uploads/2012/01/image_thumb10.webp" width="67" height="65" /&gt;&lt;/a&gt;I received a reference document from a user, a rather complex Excel sheet. When selecting multiple tabs it took almost a minute to generate a print preview in Excel 2007 running on Windows 2003 with XenApp 5.&lt;/p&gt; &lt;p&gt;I was aware of a bug in the Xerox Universal Driver where almost 9.000 files were copied into the user's profile directory (I wrote about that in an &lt;a href="https://remkoweijnen.nl/blog/2011/02/08/the-case-of-the-citrix-ready-printer-driver/" target="_blank"&gt;earlier post&lt;/a&gt;). But this seemed to be another problem.&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt;</description></item><item><title>NTVDM encountered a hard error</title><link>https://remkoweijnen.nl/blog/2011/12/14/ntvdm-encountered-a-hard-error/</link><pubDate>Wed, 14 Dec 2011 21:41:22 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/12/14/ntvdm-encountered-a-hard-error/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/12/image7.webp" class="glightbox" data-type="image" data-gallery="post-2254"&gt;&lt;img loading="lazy" decoding="async" style="margin: 0px 3px 0px 0px; display: inline; float: left" title="MS-Dos Logo" alt="MS-Dos Logo" align="left" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/12/image_thumb7.webp" width="74" height="82" /&gt;&lt;/a&gt;Today I troubleshooted an old DOS application that needed to run on a 32 bit Citrix XenApp Server. The last time I saw an actual DOS application in a production environment must be years ago.&lt;/p&gt; &lt;p&gt;When starting the application, the WOW subsystem (NTVDM) crashed with the message: "NTVM encountered a hard error.":&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/12/image8.webp" class="glightbox" data-type="image" data-gallery="post-2254"&gt;&lt;img loading="lazy" decoding="async" style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="ntvdm.exe - System Error" border="0" alt="NTVDM encoutered a hard error" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/12/image_thumb8.webp" width="198" height="104" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;After spending some time troubleshooting I remembered a similar issue from a few years ago where a DOS application worked fine from the Console but refused to work from an RDP or ICA session.&lt;/p&gt;</description></item><item><title>Dutch Citrix User Group Launched</title><link>https://remkoweijnen.nl/blog/2011/12/01/dutch-citrix-user-group-launched/</link><pubDate>Thu, 01 Dec 2011 09:51:29 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/12/01/dutch-citrix-user-group-launched/</guid><description>&lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/12/image.webp" class="glightbox" data-type="image" data-gallery="post-2199"&gt;&lt;img loading="lazy" decoding="async" style="margin: 0px 0px 0px 17px; display: inline; float: right;" title="DUCUG Logo" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/12/image_thumb.webp" alt="Dutch Citrix User Group Logo" width="165" height="80" align="right" /&gt;&lt;/a&gt;A while ago I was invited for a presentation at the &lt;a href="http://www.citrixug.org.uk/" target="_blank"&gt;UK Citrix User Group&lt;/a&gt;. I went there together with my colleague Ingmar Verheij and we had a great day there.&lt;/p&gt;
&lt;p&gt;I was impressed with what I say there, a community that was very much alive and with good discussions. It was clear that the UK Citrix User Group was doing very well, thumbs up for their Steering Group!&lt;/p&gt;
&lt;p&gt;So Ingmar and I wondered why there was no active Dutch Citrix User Group in The Netherlands. There had been an initiative in the past, the DUCUG so we decided to see if we could revive it.&lt;/p&gt;</description></item><item><title>Extremely slow Virtual Machines on HP Smart Array P410</title><link>https://remkoweijnen.nl/blog/2011/05/02/extremely-slow-virtual-machines-on-hp-smart-array-p410/</link><pubDate>Mon, 02 May 2011 14:15:50 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2011/05/02/extremely-slow-virtual-machines-on-hp-smart-array-p410/</guid><description>&lt;p&gt;I was deploying virtualized Citrix XenApp Servers on HP BL460c G6 servers and somehow the storage (direct attached) responded very slowly.&lt;/p&gt; &lt;p&gt;I had expected reduced performance (see &lt;a href="https://remkoweijnen.nl/blog/2010/10/16/slow-power-on-and-storage-operations-with-hp-smart-array-p410i-controller-on-vmware-vsphere-4-0/" target="_blank"&gt;my earlier post&lt;/a&gt;) since I didn't have the&amp;#160; Battery Backed Write Cache module installed. &lt;br /&gt;I did order them but had to start deployment before they arrived. &lt;/p&gt; &lt;p&gt;I did not however expect such an extreme bad performance. Deployment took ages or sometimes failed completely and when logging in to a VM it responded very sluggish. &lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;u&gt;Disk Latency&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I looked in the vSphere console what the Disk Latency was. Latency under 10ms is usually considered good while a latency between 10 and 20ms is a potential performance problem.&lt;/p&gt; &lt;p&gt;I was shocked to notice that the Disk Latency was much higher with peaks toward 2.000 ms (2 seconds!):&lt;/p&gt; &lt;p&gt;&lt;a href="https://remkoweijnen.nl/blog/wp-content/uploads/2011/05/DiskLatency.webp" class="glightbox" data-type="image" data-gallery="post-1719"&gt;&lt;img loading="lazy" decoding="async" style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DiskLatency" border="0" alt="DiskLatency" src="https://remkoweijnen.nl/blog/wp-content/uploads/2011/05/DiskLatency_thumb.webp" width="362" height="243" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;#160;&lt;/p&gt;</description></item><item><title>Unattended Citrix Installation: Could not Access the datastore using the DSN file</title><link>https://remkoweijnen.nl/blog/2008/06/23/error-26009-could-not-access-the-datastore-using-the-dsn-file/</link><pubDate>Mon, 23 Jun 2008 22:11:21 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2008/06/23/error-26009-could-not-access-the-datastore-using-the-dsn-file/</guid><description>&lt;p&gt;I was working on an unattended installation of Citrix Presentation Server 4.5 or rather Citrix Xenapp. I was creating the dsn file for the installation by a script that uses the echo command and output this to a file.&lt;/p&gt;
&lt;p&gt;This is a part of the script:&lt;/p&gt;</description></item><item><title>Using WTSWaitSystemEvent</title><link>https://remkoweijnen.nl/blog/2008/01/25/using-wtswaitsystemevent/</link><pubDate>Fri, 25 Jan 2008 18:02:13 +0000</pubDate><guid>https://remkoweijnen.nl/blog/2008/01/25/using-wtswaitsystemevent/</guid><description>&lt;p&gt;If you develop an application for Terminal Server you might want to react on session events. This means that your application is notified when a user logs on, logs off or becomes idle. This can be done with the &lt;a target="_blank" href="http://msdn2.microsoft.com/en-us/library/aa383856(VS.85).aspx"&gt;WTSWaitSystemEvent&lt;/a&gt; function. Implementing it is rather simple and could look something like this:&lt;/p&gt;</description></item></channel></rss>