Skip to content

Updated Citrix XenDesktop / XenApp 7.x PowerShell Documentation Script

I have updated the XenDesktop / XenApp 7.x PowerShell Documentation Script. Next to a small bugfix I have added the Documentation of the Hosting-Connections. Thus the following things are now documented:

  • General Site Informations
  • Logging Settings
  • Licensing
  • Controllers
  • Databases
  • Administrators
  • Machine Catalogs
  • Applications
  • Hosting
  • Storefront Servers (not the StoreFront Config)
  • App-V Server

The following main thing is missing:

  • Policies

Files

The script is divided into two files:
jhmeier-xd7-xa-7.x-documentation-v04.ps1
en-US.xml

The first file is the script himself, while the second file is for an easy modification of the script-output for other languages.

Script Usage

To use the scripts a few prerequisites must be fulfilled:

  • XenDesktop / XenApp PowerShell Extensions
  • Microsoft Word
  • XenDesktop / XenApp Admin Account (with at least Read privileges)
  • PowerShell Execution Policy
  • The script and the language file need to be in the same location.

That should it be – just execute the script. The script starts and creates an (invisible) Word-Document in the background. When it’s finished it saves the document with the name XD-XA-SITE-NAME.docx in the script folder.

Parameters

The script supports (but doesn’t need) the following parameters:
-TextLanguage en-US
If you don’t want to have an output in the default language (English) you need to define the wanted language. Attention: Therefore you need a separate language xml file – see Language Files.
-DeliveryControllerAddress DeliveryControllerFQDN
If you run the script without this parameter it tries to connect to localhost – but if that’s not a Delivery Controller you need to specify it

Language Files

If you run the script – without creating a language specific xml file – the output looks like this:
Description: Description in the System language
If that’s ok for you – you have nothing to do – but if you prefer a complete output in your language like (in German):
Beschreibung: Beschreibung in Deutsch
you need to copy the file en-US.xml and rename it to e.g. de-DE.xml. After that open the new file with an editor of your choice. You now find a lot of entries which look like the following:
<Description>Description</Description>
Now you need to translate the middle for every necessary line so that it looks like this:
<Description>Beschreibung</Description>

License

The script is published under the GPL.

Download

jhmeier-xd-xa-7.x-documentation-v04.zip

Feedback

Any feedback would be really welcome – if you have something to make the script better or have any questions – feel free to contact me.

IT-Administrator Article – Citrix XenMobile

I have written another article for the print magazine IT-Administrator. This time it’s an article about Mobile Device and Mobile Application Management with Citrix XenMobile. You can find the full article in the May edition.

ita201405-titel

Mobile Geräte drängen in die Unternehmen. Kein Wunder, dass die großen Software-Anbieter sich immer stärker diesem Thema widmen. Seit der Übernahme von Zenprise hat sich auch bei Citrix im Bereich Mobile viel getan. So konnte Citrix das Mobile Device Management ursprünglich nicht bedienen. Im neuen XenMobile ist dies nun möglich. Das ehemalige Cloud Gateway hat Citrix gleich mit hineingepackt. Doch welche Editionen enthalten welche Funktionen und wofür benötigen Sie die einzelnen Komponenten? Diese Fragen klären wir für Sie in diesem Beitrag.

Citrix XenDesktop / XenApp 7.x PowerShell Documentation Script

Hi everyone,

I think you all know the absolute fantastic PowerShell Documentation Scripts for Citrix XenApp (up to 6.5) and PVS created by Carl Webster. With these scripts it’s absolutely easy to create a Documentation of a XenApp- or PVS-Farm. Unfortunately Carl didn’t create (or release) a documentation script for XenDesktop / XenApp 7.x yet, so I decided to create my own script. It’s not comparable (and actually that’s not my intention) to Carls scripts but documents the following things (in a more basic way):

  • General Site Informations
  • Logging Settings
  • Licensing
  • Controllers
  • Databases
  • Administrators
  • Machine Catalogs
  • Applications
  • Storefront Servers (not the StoreFront Servers)
  • App-V Server

The following main things are missing:

  • Policies
  • Hosting

The script is divided into two files:
jhmeier-xd7-xa-7.x-documentation-v03.ps1
en-US.xml

The first file is the script himself, while the second file is for an easy modification of the script-output for other languages.

Script Usage

To use the scripts a few prerequisites must be fulfilled:

  • XenDesktop / XenApp PowerShell Extensions
  • Microsoft Word
  • XenDesktop / XenApp Admin Account (with at least Read privileges)
  • PowerShell Execution Policy
  • The script and the language file need to be in the same location.

That should it be – just execute the script. The script starts and creates an (invisible) Word-Document in the background. When it’s finished it saves the document with the name XD-XA-SITE-NAME.docx in the script folder.

Parameters

The script supports (but doesn’t need) the following parameters:
-TextLanguage en-US
If you don’t want to have an output in the default language (English) you need to define the wanted language. Attention: Therefore you need a separate language xml file – see Language Files.
-DeliveryControllerAddress DeliveryControllerFQDN
If you run the script without this parameter it tries to connect to localhost – but if that’s not a Delivery Controller you need to specify it

Language Files

If you run the script – without creating a language specific xml file – the output looks like this:
Description: Description in the System language
If that’s ok for you – you have nothing to do – but if you prefer a complete output in your language like (in German):
Beschreibung: Beschreibung in Deutsch
you need to copy the file en-US.xml and rename it to e.g. de-DE.xml. After that open the new file with an editor of your choice. You now find a lot of entries which look like the following:
<Description>Description</Description>
Now you need to translate the middle for every necessary line so that it looks like this:
<Description>Beschreibung</Description>

License

The script is published under the GPL.

Download

jhmeier-xd-xa-7.x-documentation-v03.zip

Feedback

Any feedback would be really welcome – if you have something to make the script better or have any questions – feel free to contact me.

That’s it – hopefully the script is useful for some of you.

Upgrading the Nvidia Grid Card Firmware

During the last days I was able to start some testings of the new XenServer vGPU feature – thanks to my colleague Benny Tritsch for allowing me to use his Test-System with a Nvidia Grid K2 Graphics Card. During my tests I had some problems so we decided to upgrade the Firmware – well but the description of the update process looks like:

1. Create Bootable USB-Stick with Linux
2. Copy Firmware to USB stick
3. Boot from USB stick and open the update file

As you can see it’s a realy short description. Furthermore I had some problems during the update process – so I would like to share with you how I was able to upgrade the Firmware:

1. Download the Universal-USB-Installer
2. Download the Ubuntu Desktop Version (I used 12.04.4)
3. Open the Universal-USB-Installer and agree to the license
2014-02-21 08_39_17-Universal USB Installer 1.9.5.2 Setup

4. Choos Ubuntu as the Linux distribution, the downloaded iso and the USB-Stick to be used for creating the bootable USB stick
WARNING: All data on the USB stick will be removed!
2014-02-21 11_06_43-Universal USB Installer 1.9.5.2 Setup

5. After starting the USB installation with “Create” you need to confirm the start.
2014-02-21 11_06_54-Muster-DB01 on W2012-LENOVO - Virtual Machine Connection

6. When everything is done you can see the following message:
2014-02-21 11_46_25-Universal USB Installer 1.9.5.2 Setup

7. Now you need to copy the Firmware Files to a second USB stick. You should have two files – one named gridpro-update_R1.0.run and the other one named gridpro-update-auto_R1.0.run.
[Update]
You can also copy the files to the root directory of the first USB stick. Then they will be available on /cdrom after booting”. Thanks to @shawnbass
[/Update]
8. The next step is to boot server (which contains the Grid Card) from the just created USB stick. You don’t need to install Ubuntu – so choose "Try Ubuntu” to start Ubuntu directly from the stick.
2014-02-20 07_47_26-DVI2USB Solo [D3U51862]  - 1440x900 60.2 Hz 

9. After Ubuntu is started you attach the second USB stick and copy the Firmware files to Documents.
2014-02-20 08_34_10-DVI2USB Solo [D3U51862]  - 1440x900 60.2 Hz

10. Open the properties of both files and change all “Access” types to “Read and write”. Furthermore activate “Allow executing files as a program”.
2014-02-20 08_44_04-DVI2USB Solo [D3U51862]  - 1440x900 60.2 Hz

11. Time to switch to the console – press the upper left icon and enter “Ter” to find the “Terminal”.
2014-02-20 08_16_36-DVI2USB Solo [D3U51862]  - 1440x900 60.2 Hz

12. Inside the Terminal you first switch to the root account (sudo su) and then you open the folder Documents (cd Documents). To start the update you enter “./gridpro-update_R1.0.run” (without quotation marks). Alternatively you can enter “./gridpro-update-auto_R1.0.run”. The second one runs an autoupdate without userinteraction while the first asks you for every update if you would like to install the update.
2014-02-20 08_45_11-DVI2USB Solo [D3U51862]  - 1440x900 60.2 Hz

13. If you didn’t choose the Auto-Update-Version confirm the updates (dependen on the installed version it’s possible that you are asked more than once) with “y”.2014-02-20 08_45_31-DVI2USB Solo [D3U51862]  - 1440x900 60.2 Hz

14. After all updates are installed the following message is displayed:
Update successful.
No more matches found.

2014-02-20 08_47_58-DVI2USB Solo [D3U51862]  - 1440x900 60.2 Hz

15. That’s it – shut down Ubuntu – remove the USB sticks and start your normal OS.

PS:
Until now I only found the Firmware Updates on the IBM-Website….

Citrix Receiver: The configuration manager cannot be initialized

Today I would like to describe you an interesting problem I had during my last receiver deployments. The start of the installation always failed with the message:

The configuration manager cannot be initialized.

2014-02-12 22_02_41-win7-en on W2012-LENOVO - Virtual Machine Connection

After removing all old Receiver Installations the error still occurred. I cleaned up the registry and file system and removed everything which contained Citrix – but still the same error.
The next step was to use the Citrix Receiver Clean-Up Utility (CTX137494) – normally this tool removes everything related to old Receiver or Online Plugin Versions. But this time this didn’t fix the problem – after using the tool the same error was displayed like before. Time for a more intensive debug and check with procmon which files and registry keys are accessed during the setup start. And there it was – the setup tried to access the following registry key:

HKEY_CLASSES_ROOT\Installer\UpgradeCodes\9B123F490B54521479D0EDD389BCACC1

2014-02-12 22_01_03-win7-en on W2012-LENOVO - Virtual Machine Connection

I removed the complete registry key and tried again to install the receiver – this time the setup started without any error messages and I was able to install the receiver.

2014-02-12 22_14_37-win7-en on W2012-LENOVO - Virtual Machine Connection

(Initial) StoreFront Configuration Replication Fails with error 31

In one of my last projects I had an interesting problem with Storefront. Neither the initial configuration replication nor following ones worked. 2014-01-10 09_51_04-storefront01 (24.4.21) on W2012-LENOVO - Virtual Machine Connection

On the first StoreFront Server the following error was logged:

Log Name:      Citrix Delivery Services
Source:        Citrix Configuration Replication Service
Event ID:      31

An error has occured during the all server configuration update process.
Citrix.DeliveryServices.ConfigurationReplication.Exceptions.ServerUpdateConfigurationException, Citrix.DeliveryServices.ConfigurationReplication, Version=2.4.0.0, Culture=neutral, PublicKeyToken=e8b77d454fa2a856
An error occured running the command: ‘Add-DSFeatureInstances’
RemoteEndpoint: net.tcp://storefront02/Citrix/ConfigurationReplication

2014-01-10 09_51_27-storefront01 (24.4.21) on W2012-LENOVO - Virtual Machine Connection

On the second Server I found the following three errors:

Log Name:      Citrix Delivery Services
Source:        Citrix Configuration Replication Service
Event ID:      1

An error occured running the command: ‘Add-DSFeatureInstances’
Exception of type ‘Citrix.DeliveryServices.Framework.Web.Deployment.Exceptions.WebApplicationAlreadyExists’ was thrown.
Citrix.DeliveryServices.PowerShell.Command.Runner.Exceptions.PowerShellExecutionException, Citrix.DeliveryServices.PowerShell.Command.Runner, Version=2.4.0.0, Culture=neutral, PublicKeyToken=e8b77d454fa2a856
An error occured running the command: ‘Add-DSFeatureInstances’

2014-01-10 09_52_37-storefront02 (24.4.22) on W2012-LENOVO - Virtual Machine Connection

Log Name:      Citrix Delivery Services
Source:        Citrix Configuration Replication Service
Event ID:      12

Failure to notify of configuration update.
Citrix.DeliveryServices.PowerShell.Command.Runner.Exceptions.PowerShellExecutionException, Citrix.DeliveryServices.PowerShell.Command.Runner, Version=2.4.0.0, Culture=neutral, PublicKeyToken=e8b77d454fa2a856
An error occured running the command: ‘Add-DSFeatureInstances’
   at Citrix.DeliveryServices.PowerShell.Command.Runner.PowerShellCommandRunner.RunCommand(IPowerShellCommand command)
   at Citrix.DeliveryServices.ConfigurationReplication.PowerShell.ConfigurationWriterBL.AddFeatureInstances(List`1 instancesToCreate, List`1 featureClasses)
   at Citrix.DeliveryServices.ConfigurationReplication.BL.Synchronisation.ConfigurationSync.SynchroniseInstances(FeatureInstancesInfo instances)
   at Citrix.DeliveryServices.ConfigurationReplication.BL.Synchronisation.ConfigurationSyncController.Update(Guid primarySynchronisationLevel)
   at Citrix.DeliveryServices.ConfigurationReplication.BL.Synchronisation.ConfigurationSyncController.UpdateHostConfiguration(Guid synchronisationLevel, IConfigurationSync sync, IConfigurationReplication proxy, IPersistServiceState store)
   at Citrix.DeliveryServices.ConfigurationReplication.BL.Synchronisation.ConfigurationSyncController.UpdateHostConfiguration(Guid synchronisationLevel, String proxyEndpoint)
   at Citrix.DeliveryServices.ConfigurationReplication.WCF.ConfigurationReplication.<>c__DisplayClass3.<BeginUpdateConfiguration>b__1(Object asr)

2014-01-10 09_53_19-storefront02 (24.4.22) on W2012-LENOVO - Virtual Machine Connection

Log Name:      Citrix Delivery Services
Source:        Citrix Configuration Replication Service
Date:          10.01.2014 09:50:53
Event ID:      19

Failed to get the end status of the sever configuration update.
System.ServiceModel.FaultException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
An error occured running the command: ‘Add-DSFeatureInstances’
   at Citrix.DeliveryServices.ConfigurationReplication.WCF.ConfigurationReplication.EndUpdateConfiguration(IAsyncResult asyncResult)

2014-01-10 09_53_57-storefront02 (24.4.22) on W2012-LENOVO - Virtual Machine Connection

If you google for problems like these you find hints like:

  1. Delete some specific files on the secondary StoreFront Server and synchronize again
  2. Remove StoreFront from the secondary StoreFront Server – don’t forget do manually delete C:\inetpub\wwwroot\Citrix and C:\ProgramFiles\Citrix\Receiver StoreFront – Remove second StoreFront Server from StoreFront Group – Reinstall second StoreFront Server and join again
  3. Uninstall StoreFront on both Servers – remove folders mentioned in two – reinstall StoreFront and create a new StoreFront Group

None of them worked for us – but if you read the first Event on the secondary StoreFront Server carefully you already get a got hint why the replication fails:

‘Citrix.DeliveryServices.Framework.Web.Deployment.Exceptions.WebApplicationAlreadyExists’

Though we also checked the StoreFront Log-Files in C:\ProgramFiles\Citrix\Receiver StoreFront\Admin\logs and then we found an interesting entry in the file Add-DSWebReceiver :

There is already a web app at 1 /Citrix/StoreWeb
WebReceiverInstance:Deploy failed due to exception: Citrix.DeliveryServices.Framework.Web.Deployment.Exceptions.WebApplicationAlreadyExists: Exception of type ‘Citrix.DeliveryServices.Framework.Web.Deployment.Exceptions.WebApplicationAlreadyExists’ was thrown.

Ok – we removed StoreFront (on the second Server) again completely (with all files) and opened the IIS-Management-Console:
2014-01-10 10_00_41-storefront02 (24.4.22) on W2012-LENOVO - Virtual Machine Connection
What’s that? StoreFront is removed but there’s still a “StoreWeb” available? After checking the file-system – there was no StoreWeb availble – we removed the folder in the IIS console.

After reinstalling StoreFront and joining to the StoreFront Group the configuration synchronization worked without any problems.
2014-01-10 10_00_59-storefront01 (24.4.21) on W2012-LENOVO - Virtual Machine Connection

Hope this helps some of you if you have problems with your StoreFront synchronization.

Just one more hint at the end – StoreFront also supports a more intensive verbose logging. The usage is described in CTX139592.

Citrix WorxMail (iOS) connection fails with SLL Error

In one of my Citrix XenMobile implementations I had an interesting problem with WorxMail for iOS. If we tried to connect WorxMail to the internal Exchange Servers we always received the error:

Not trusted SSL Certificate.
not trusted

We started to check the connections but everything was working fine. Also we didn’t have any problem with WorxMail for Android. For the connection we used the STA-Method and not a Micro VPN. After checking everything deeper we found that WorxMail still was initiating a direct connection to the internal Exchange-Server through the NetScaler Gateway. Of course the internal servers used a certificate from the internal Root-Ca. After importing the Root-CA-Certificate into our iOS-Devices everything was working fine.

Actually that was not really a solution for us – deploying the internal Root-CA-Certificate to BYOD devices would have been a lot of work (people with BYOD devices don’t want to connect their device to the companies owned MDM-Solution for an automatic deployment). We started to look for other solutions and luckily Citrix just published the new WorxMail Version 1.3. After importing this version into the AppController a new Application Policy was available:
Accept all SSL certificates

image

After activating the policy and deploying the new WorxMail Version connections to our internal Exchange Servers worked without any problems (and of course without deploying the internal Root-CA-Certificate).

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: