Archive for the 'Hands-On' Category

Creating Your Very Own Office 2007 Ribbon – No Programming Necessary!

The famous German IT magazine c’t has recently published an article about creating your own and modifying existing ribbons in Office 2007. Not again, you may be thinking. But the article shows how a simple DLL helps without any knowledge of programming.

Continue reading ‘Creating Your Very Own Office 2007 Ribbon – No Programming Necessary!’


Using EdgeSight in a Provisioning Server Shared Image – Properly!

As EdgeSight is a component that is offered by Citrix in several Platinum Editions for strategic products as well as a substitute for Resource Manager in XenApp, customers like to profit from the value-add compared to traditional system management products. EdgeSight is often used to augment the data collected by those tools.

But when using EdgeSight with Provisioning Server, things get a little more complex because an agent is assigned a unique ID to match data uploads to the correct database entries. By using shared disks with Provisioning Server, such a unique ID must not be included in the golden image to avoid performance data to be assigned incorrectly – meaning that several agents may be reporting to the same device in EdgeSight.

In this article, I’d like to demonstrate how the method offered by Citrix can be enhanced to use EdgeSight and make the management of shared disks with Provisioning Server feasible.

Continue reading ‘Using EdgeSight in a Provisioning Server Shared Image – Properly!’


Using the XmlServiceReader with Health Monitoring and Recovery (HMR)

After publishing the XmlServiceReader and writing about the shortcomings of the health check for the XML service provided by Citrix, I like to expand on the process of creating a custom health check using the XmlServiceReader.

Continue reading ‘Using the XmlServiceReader with Health Monitoring and Recovery (HMR)’


What does XMLServiceTester.exe in HMR do?

You may well ask why I created a tool to send arbitrary requests to the XML service and parse the reply in scripts – which is, by the way, called XmlServiceReader. First of all, I did not like the tool included with the Health Monitoring and Recovery of Presentation Server and XenApp – called RequestTicket.exe – due to its limitation to being executed on the same host as the XML service is located. Furthermore, this tools has a hard-coded request and does not allow customization of the request sent to the XML service.

Continue reading ‘What does XMLServiceTester.exe in HMR do?’


Health Checking the XML Service with Custom Requests

Since I have released the XmlServiceExplorer and XmlServiceDigger,  I have received several requests for another tool allowing for custom health checks against the XML service, e.g. see this comment. The XmlServiceReader is a command line tool sending arbitrary requests to the XML service and printing the reply to the same window. This output can be checked in a script to determine whether the reply is valid and the service fully operational.

Continue reading ‘Health Checking the XML Service with Custom Requests’


Reading Farm Information from the XML Service

After writing and publishing the XmlServiceExplorer, I was asked several times just how much information is disclosed by the XML service. There were also comments (to one of my articles and in Brian’s forums) about a possible security breach caused by offering the access lists of all published applications which I described in a tutorial to the XmlServiceExplorer. Although it is possible to suppress the access lists being disclosed by the XML service, the switch is not documented. Continue reading ‘Reading Farm Information from the XML Service’


Pausing (not Suspending) Virtual Machines to Preserve Resources

When working with several virtual machines on my laptop, I often run into situations when system resources become scare. The most obvious bottleneck is physical memory. And despite the efforts of the desktop virtualization vendors to reduce the amount of physical memory required, this happens very frequently and results in heavy swapping while Windows attempts to resolve the issue. This causes a lot of stress on the local hard drive causing Windows to perform even worse. Continue reading ‘Pausing (not Suspending) Virtual Machines to Preserve Resources’


Suppressing Access Lists to be Exposed by the XML Service

In an earlier article about the XmlServiceExplorer, I explained how to obtain the access list of all published applications in a farm from the XML service.

As this information is offered without authentication, it can be considered a security issue. The XML service should rather offer the resulting list of published applications based on the access lists instead of the access list themselves.

Fortunately, this behaviour of the XML service can be suppressed by changing a registry key on the Presentation Server / XenApp server:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Citrix\XML Service]
“ExposeAccessLists”=dword:00000000

Using the same settings as in the example of my earlier article, the XML service only returns an empty tag called Details.

This configuration option should also be able to settle the discussion in the security forum of Brian’s site.

Please note that this switch is not documented (as far as I know). Be sure to have tested this before deployment in a production environment.


Debugging Using XmlServiceExplorer – Part 3

In the last part of this tutorial about the XmlServiceExplorer, I introduced requesting useful information from the farm as well as resolving addresses.

Now, I’d like to demonstrate how chatty the XML service is when it comes to applications and their configuration. Some pieces of information are required for Web Interface to operate while others can be regarded as compromising. Continue reading ‘Debugging Using XmlServiceExplorer – Part 3′


Debugging Using XmlServiceExplorer – Part 2

In the first part of my tutorial about the XmlServiceExplorer, I have explained how session management is performed by the Web Interface and how the same behaviour can be reproduced by the XmlServiceExplorer. I recommend you also read the initial article: Talking to the XML Service. Continue reading ‘Debugging Using XmlServiceExplorer – Part 2′