Remko Weijnen's Blog (Remko's Blog)

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


imageYesterday I showed a video demonstrating it’s possible to run multiple instances of the Microsoft Lync 2010 client simultaneously.

A little warning before we go on: the Lync Client was not designed to run with multiple instances. Or better said: it was designed specifically to prevent this, let’s see how it does this:

On startup Lync calls an internal function called COcAppNoUI::InitializeMainInstance. In this function it creates a Mutex named “Office Communicator_” in the Global namespace. It also creates an Event in the Global namespace called “COMMUNICATOR-“.

When a second instance of Lync is launched it checks if the Global Mutex exists and if it does it fires the Global Event. The Main instance has a thread that waits for this event using the WaitForMultipleObjects API.

Read the rest of this entry »

  • Filed under: Lync, ThinApp

    This video shows that’s it’s possible to run multiple instances of the Lync 2010 client.

    I am running natively, so I am not using ThinApp or App-V.

    I will follow this up later with a how-to blog.

    Running Multiple Instances of Lync 2010
  • 1 Comment
  • Filed under: General

    From a script I needed to schedule a project in RES Automation Manager 2011 for a particular server.

    imageThis can be done with the WMC.exe commandline tool as documented in the Admin Guide. However we must specify the agent’s GUID instead of it’s name. We can of course use the AM console to get the agent’s GUID but it’s more flexible to script this.

    imageUnfortunately there’s no API we can call so I am directly quering the AM database using a PowerShell script.

    The script read the database server and database name from the registry so it assumes you have the AM console installed.

    Read the rest of this entry »

  • Filed under: PowerShell, RES

    I am writing a script that is going to automate a number of manual steps involved in creating a new image with Citrix PVS.

    First step is to copy the most recent base image which is kept in a folder structure. The folder name is always YYYY-MM-DD (description):


    I needed to determine the most recent folder and didn’t want to rely on creation date. Instead I walk the directory tree and filter the date out of the filename with a regular expression:

    Read the rest of this entry »

  • Filed under: PowerShell

    imageYesterday I wrote about the Windows 8 CP WebSetup installer and told you that the Application Compatibility check creates a few XML files in the folder %AppData%\Local\Microsoft\WebSetup\Panther.

    So what can we do with them?

    The XML files are created by a separate exe in the WebsetupExpanded folder called WicaInventory.exe with the arguments: /apps /fast /ext “exe,sys” /output <XML file> /log <LOG file>

    In my case the commandline was:

    Let’s see what’s in WICA_Programs_REMKOLAPTOP.xml.


    Read the rest of this entry »

  • Filed under: Windows 8

    The Windows 8 Consumer Preview is downloaded as a Web Installer called Windows8-ConsumerPreview-setup.exe.

    On my system the Web Installer crashed while checking Application Compatibility:


    I clicked the Debug option and launched the Visual Studio debugger:

    Read the rest of this entry »

  • Filed under: Windows 8

    imageI 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.

    A google search for a method to quickly convert the garbage output to objects led me to this blog post by Frank Peter. He describes a clever use of the switch statement with regular expressions with the Get-DiskInfo cmdlet.

    Using Frank’s code as a basis I wrote a generic function that converts Mcli output to an array of objects.

    Read the rest of this entry »


    Just read a tweet from @andyjmorgan about Interactive Service Detection. This made me remember that it’s possible to switch to the Session 0 with an undocumented api in winsta.dll.

    For this API to work you must have the Interactive Services Detection (UI0Detect) service running.

    Read the rest of this entry »


    TraceView IconVarious Citrix knowledge base articles refer to a tool called TraceView.exe to view the output of diagnostic traces.

    CTX106233 describes where to download traceview but this article is outdated because it describes an older version of the DDK (the Windows Driver Development).

    The current DDK version (7.1.0) can be downloaded here and has the filename “GRMWDK_EN_7600_1.ISO”.

    Read the rest of this entry »

  • Filed under: Citrix

    imageI logged remotely to a server with RDP and I noticed that  I had options to restart or shutdown that server. This means we can shutdown or restart a server without physical access and without authentication:

    Windows Server 2003 Logon Screen | Imprivata | Shutdown | REstart

    Read the rest of this entry »

  • Filed under: General
  • Blogroll