Remko Weijnen's Blog (Remko's Blog)

About Virtualization, VDI, SBC, Application Compatibility and anything else I feel like


imageThis blog is about an issue with VMware ThinApp and Office 2010 I discovered a while ago.

Customer is using Office 2003 natively on a Citrix XenApp 5 environment. Some users had a business need for Office 2010, therefore a ThinApp with Office 2010 was created (this customer uses ThinApp for App-Virt).

To make the picture complete: Thinapp version is 4.7.2-771812 and Office version is 2010 SP1 (14.0.6024.1000) .

imageUsers complained that Office 2010 was very slow. Most noticeable was Outlook 2010 which was completely unusable.

Outlook startup time was minutes rather than seconds and while starting it seemed to delay on loading profile.

When Outlook was finally started, switching between folders and layouts felt really sluggish.

For example when switching from Calendar to Inbox took a few seconds, after which it would take almost 20 seconds for the e-mails to show. Switching between e-mail would take 2-3 seconds to display the contents in the reading pane.

Read the rest of this entry »

  • Filed under: ThinApp

    imageToday I was asked to assist in getting an Excel Add-In to work on Citrix XenApp.

    The application was packaged into a Thinapp by one of our package engineers.

    However when testing the Add-In on Citrix XenApp the following message appeared:


    Apparently this application does a license check that fails when run from another server (how bad).

    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’s environment.

    Read the rest of this entry »

  • Filed under: Citrix

    Customer uses Citrix XenApp 5 with ThinApp, RES Workspace Manager and RES Workspace Extender.

    An application integration strategy is defined, the picture below displays the strategy and preferred order:


    Customer wanted to know the type (1..7) for all applications currently defined in RES Workspace Manager.

    I decided to export all the Applications from RES WM as Building Blocks. This results in a folder with XML files. I decided to parse the XML files with a PowerShell script.

    Read the rest of this entry »

  • Filed under: PowerShell, RES

    Another interesting issue today with an application that runs on Citrix XenApp.

    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.

    RES Workspace Extender is used to integrate locally installed application into the XenApp Session. Users have no access to the local desktop.

    This particular application scans invoices using a USB scanner attached to the client and runs them trough a workflow.
    Whenever the Start scan button was pressed the application froze.



    Read the rest of this entry »

  • 1 Comment
  • Filed under: Citrix

    imageSome applications use the computer’s name as a unique identifier, rather than using the user name. In a single-user-per-computer environment, this strategy works well.

    However, in a Multi User environment such as Citrix XenApp or Microsoft’s Remote Desktop Services (Terminal Server), all connected users report the same computername.

    If the application relies on unique computernames to handle tasks such as file and record locking, then the application will fail.

    imageWe can however set an Application Compatibility Flag in the registry to return the username instead of the computername.

    To demonstrate this behaviour I wrote a small Test Application called TestAppCompatFlags.exe.

    Read the rest of this entry »


    imageOn Windows 2000, XP and Server 2003 a mechanism called Windows File Protection (WFP) is used to protect system integrity.

    How does WFP Work?
    Inside SFCFILES.DLL a list of files is kept that are monitored for changes. When a monitored file gets deleted, modified or overwritten WFP will restore the original from one of the following locations:

    • Cache Folder (%systemroot%\System32\DllCache)
    • Network Installation Path
    • Windows CD (or i386 folder on harddisk)

    But what if we need to replace such a file? You could write a batch file that copies the modified file to the cache folder, installation path and destination. And this may work if it’s quick enough.

    A more reliable method is to use an undocumented export from sfc_os.dll called SfcFileException (only exported by ordinal #5).

    Read the rest of this entry »


    Twain LogoScanners attached to client machines can be used from within a Citrix XenApp session via a mechanism called Twain Redirection.

    For this mechanism to work correctly the file twain_32.dll must be present in the Windows directory.

    On Windows 2008 this dll should be copied from winsxs (side by side) to the windows directory as described in CTX123981.

    On Windows 2003 the dll is already in the correct directory, however applications that are not Terminal Server Aware cannot find this dll because the Windows directory is redirected to the user profile. Citrix recommends copying twain_32.dll to each user’s profile directory but this will take up unnecessary space.

    So what alternatives do we have?

    Read the rest of this entry »


    Within half an hour of writing the article "Application causes Screen Flickering in Citrix XenApp Session" I got a message that the hotfix in that article also fixes a similar problem in PowerPoint 2010.

    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):

    Screen Flickering when running WPF Applications on Citrix XenApp


    Read the rest of this entry »


    Yesterday I was asked to troubleshoot an interesting issue with an application running on Citrix XenApp.

    This customer is running Citrix XenApp 5 on Windows Server 2003 (x86). On the Client Side the Online Plugin version 12.3 is used.

    The Problem
    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:


    My experience is that display issues are often related to either HDX Flash Redirection (offloading flash to the client) or the Multi Monitor hook.


    Read the rest of this entry »


    Sometimes you need to know the Process Id (PID) of a running service. Since Windows 2003 you can use the tasklist.exe tool with the /SVC switch. But how to do this programmatically?

    The QueryServiceStatusEx API returns a SERVICE_STATUS_PROCESS structure that contains the PID.

    The code is not very complicated:

  • Filed under: Delphi
  • Blogroll