XenApp XenDesktop

Change Clientdrive Name and Icon (Example: Mein IGEL)

Today I created a script to make it easier for IGEL Linux ThinClient users to find their client USB drives. On IGEL Linux ThinClients, all USB client devices are mapped under the virtual client drive A: (clienta$). Unfortunately, it isn’t that easy to recognize for the regular users in the Windows Explorer if they are connected to a XenApp or XenDesktop machine.
Therefore I decided to make it a lot easier for the User – and here we go – that’s how it looks now:

So what do we need to do to get there? I wrote a batch script that does the Job for you – this script needs to be run everytime a user logs on to the XenApp or XenDesktop session. This can be done with the regular login script or with group policy preferences – for my first implementation I did it with GPP and used item level targeting for specifying an Active Directory Group.

Here’s the Script:


You need to customize the Script regarding the path to the IGEL icon file to fit your environment. For Copyright reasons, I can’t offer an IGEL icon file for download – you have to create your own.

Read More

MacOS Default Icons

Whenever you’ll need to customize a folder or application icon there are lots of usefull system icons built into MacOS. You can find them in the following folder:


Read More
Featured XenDesktop

XenDesktop 5: Change Icon of a Catalog

If you want to change the Icon for a XenDesktop Catalog to make it easier to differenciate between desktop catalogs:

This can be done via Powershell:

Asnp Citrix.*
$ctxIcon = Get-CtxIcon -FileName C:InstallmyIcon.ico -index 0
$brokerIcon = New-BrokerIcon -EncodedIconData $ctxIcon.EncodedIconData
$desktopGroup = Get-BrokerDesktopGroup -Name 'MyDesktopGroup'
Set-BrokerDesktopGroup $desktopGroup -IconUid $brokerIcon.Uid
Read More

Clear all Windows Evenlogs

To clear all Eventlogs in Windows just use this simple powershell command:

wevtutil el | ForEach-Object { wevtutil cl "$_" }

Read More

VMware vCenter Database Shrink Script

Whenever you’re using VMware vCenter in conjunction with Microsoft SQL Server Express Edition one day your database will run out of free space and vCenter Service will crash.

In VMware vCenter Server Settings, you can configure a period of time how long to retain old events and tasks in the database. Unfortunately, the cleanup process is a SQL Server Agent Job – remember: the free SQL Server Express Edition does not have an SQL Server Agent Service.

Many of my customers experienced this problem so I decided to write a simple batch script:

osql.exe -S VCSERVVCenter -U vpxadm -P vpxadm -d VCDB -Q "cleanup_events_tasks_proc"
osql.exe -S VCSERVVCenter -U vpxadm -P vpxadm -d VCDB -Q "DBCC SHRINKDATABASE(N'VCDB' )"
osql.exe -S VCSERVVCenter -U vpxadm -P vpxadm -d VCDB -Q "DBCC SHRINKFILE (N'VCDB' , 0, TRUNCATEONLY)"

You just need to modify the parameters, like database server, instance name, user, password e.g. to fit your environment.

Now you can just create a simple Windows Task using the Scheduled Task functionality to run this script periodically.

That’s it – your database won’t be run out of space anymore…

Read More
Mac OS X

Mac OS X: Modify “Compress” Command in Finder

Just navigate to /System/Library/CoreServices/Archive Utility.app/Contents/Resources and double-click the “Archives.pref-pane” file. Now you’ll find a new preference pane in your System Preferences:

Read More

Citrix XenApp Commands Remoting Service does not start

On Citrix XenApp 6.5 Server the service ‘Citrix XenApp Commands Remoting Service’ fails to start:

if the following conditions are true:

  • Certificate Revocation Checking is enabled (Windows default)
  • A Proxy Server is needed for internet access
  • No internet access is possible


This issue occurs because the ‘Citrix XenApp Commands Remoting Service’ tries to perform a certificate revocation check and fails.


You need to create a XML file with the name ‘Citrix.XenApp.Commands.Remoting.Service.exe.config’ in the directory ‘C:Program FilesCitrixXenApp Commands’.

Open the created file with a text editor like notepad and insert the following lines:

<?xml version="1.0" encoding="utf-8"?>
    <generatePublisherEvidence enabled="false" /> 

Save and close the file. Now you will be able to start the service.

Read More

Citrix SSL Relay Configuration Error 58

When using Citrix SSL-Relay I received the following error:

I’ve checked all the basic stuff:

  • Certificate is installed in the computer account -> [-OK-]
  • Private Key is present -> [-OK-]
  • FQDN of the Certificate and the server are matching -> [-OK-]
  • Certificate Template Version: Windows 2003 Enterprise -> [-FAILED-]

My certificate was issued based on a certificate template with a minimum requirement of Windows 2008 Enterprise PKI. However all PKI Servers ARE Windows Server 2008 R2 Enterprise and issuing the certificates based on the template – there are some major differences within the issued certificate whether the template has a minimum of Windows 2003 Enterprise or Windows 2008 Enterprise – regardless of the Version the issuing CA server is running (CryptoAPI vs. CNG).

So I needed to create another copy of my certificate template but now I’d chosen “Windows Server 2003 Enterprise” as a minimum and issued a new cert for my SSL-Relay Server:

After this, the configuration and activation of SSL-Relay worked like a charm:

Read More

Citrix SSL Relay Configuration / APPCRASH sslrelayconfig.exe

In some environments, the Citrix SSL Relay Configuration will crash with the following message at startup:

After a little, research I found a Citrix support article that describes my problem:


But from my opinion this is not a Resolution of the real problem – this seems more likely a workaround to me. So I did some further inspections what the root cause of this APPCRASH could be. The Citrix article stated something about a missing friendly name – and viola one of my installed computer certificates had no friendly name.

This is really easy to change and therefore I just entered a friendly name to the certificate within its properties:

Unfortunately, the same error is still present – APPCRASH in sslrelay.exe. So I needed to dive a little deeper. After some further investigations, I realized that the missing Subject causes also problem:

Because all Certificates were issued by our corporate public key infrastructure so we just modified the corresponding template with the following settings on our CA server:

And finally Citrix SSL-Relay Configuration is starting without an error!

Read More
Featured Programming

Creating VMware Virtual Machines using PowerCLI

During one of my current projects, I needed to create lots of virtual machines on a VMware vSphere 5 environment. These virtual machines were used as Citrix XenApp Worker servers provisioned by Citrix Provisioning Services (PVS). Therefore, we additionally needed to configure a static MAC address on each virtual machine.

For faster deployment and better documentation, I decided to do the word with the VMware Powershell interface called PowerCLI:


# --------------------------------------------------
# Connect to vCenter Server
# --------------------------------------------------
connect-viserver –server "myVCenter.domain.local"

# --------------------------------------------------
# Create new VMs from Template
# --------------------------------------------------
New-VM -Name NewVM01 -Template W2K8R2_Datacenter_ENU -Datastore "SAN-Datastore-01" -VMHost "esx01.domain.local"
New-VM -Name NewVM02 -Template W2K8R2_Datacenter_ENU -Datastore "SAN-Datastore-01" -VMHost "esx02.domain.local"

# --------------------------------------------------
# Setting DRS Rules to separate NewVM01 and NEWVM02
# --------------------------------------------------
New-DrsRule -Name "Never on the same Host" -Cluster "Production" -Enabled $true -KeepTogether $false -VM "NewVM01", "NewVM02"

# --------------------------------------------------
# Setting static MAC Addresses
# --------------------------------------------------
Get-VM "NewVM01" | Get-NetworkAdapter | Set-NetworkAdapter -MacAddress "00:50:56:1A:00:01" -Confirm:$false
Get-VM "NewVM02" | Get-NetworkAdapter | Set-NetworkAdapter -MacAddress "00:50:56:1A:00:02" -Confirm:$false

Read More
1 2 3 4 5