XenApp – Published application – Disabling/Hiding disabled application

In the software world, each software has to be upgraded to new versions to cater the ever changing requirements and user demands.

To make the software available to users, it should be installed and published in XenApp. Once published successfully for users for the first time and after that during several new releases of the same application, if there is no change in the application executable name, we don’t need to re-publish it, though it needs to be un-installed and re-installed/upgraded to the new version.

Now there could be two possibilities/scenarios administrator may encounter during the application upgradation:

  1. Users already connected to the old version of application: Suppose when an administrator has planned to upgrade the application, during the same time, some user from other part of the globe is accessing the application to perform their daily job. In this case, administrator will not be able to upgrade the application as the application has already been locked by users.
  2. During upgradation, users might try to connect to the application: It is also possible that users might try to access the application while the administrator is in the middle of application upgrade process. This could lead to access denied or some error message to the users that could create some quos in user community and end-up in many helpdesk calls.

To avoid the above scenarios, published application icon can be disabled. It can be disabled by right clicking the application icon in access management console and selecting the option “Disable application”. It can also be disabled by selecting the application properties and selecting the check box “Disable application” as shown in the below diagram. Now when user will try to click on the published icon, he will not be able to launch it. Now user might get irritated as he is able to see the application but not able to access it, so the recommended way is to select the checkbox “Hide disable application” along with the checkbox for “Disabled application”. This way users will not be able to see the published icon.


Once the upgradation is done successfully, the icons can be enabled by right clicking the application icon in access management console or by un-checking the check boxes for disabled and hide disabled application from the application properties screen.

With the above recommendation and proper upgradation/down time window, application can be upgraded without having issues to the users.


XenApp – Publishing ULRs

Sometimes users have not been granted admin rights to the workstation they are working on. The purpose is not to allow them to install anything on the workstation.

Few websites requires some plug-ins like java plug-in to be downloaded and installed on to the user’s workstation to work properly. In the absence of admin rights, Users can not install these plug-ins into their workstation and so they will not be able to work properly with the websites they require to work on.

One option to resolve this issue is for administrator to install the required plug-ins to the user’s workstation. This could be a problem as there may be many users working on different websites with different plug-ins. It would be difficult to manage those plug-ins in case of version upgrades.

Second option is that the XenApp administrator can run the required website on the XenApp for the first time to get all the required plug-ins downloaded and installed. Once the plug-ins will be installed successfully, administrator has to publish the required website from XenApp. To do so, Administrator needs to publish internet explorer executable with website url as its parameter as shown below for all the required users:


This will resolve the problem as all the processing will be done on XenApp and users do not have to have any rights to install the plug-ins.

Second option is recommended as it is easy to support and maintain all the plug-ins on some central XenApp machines but following points needs to be addressed before selecting this option:

  1. Many websites required different versions of plug-ins and sometimes two same plug-in having different versions could have some compatibility issues and should not be installed together. In short, all the plug-ins needs to be analyzed for their compatibility before installing to the XenApp. Incompatible plug-ins should not be installed on the same XenApp.
  2. As we are publishing the internet explorer executable for the users, we are giving them access to XenApp’s internet explorer and so they may use it to access any other website as well. This could lead to the security issue and could impact the XenApp and the network performance. For example, user can go to any site from the published iexplorer and can download anything or can ever watch the online videos. Since all the processing will be done on XenApp, this could eat-up the network bandwidth and XepApp CPU. To prohibit users to access any other website other then the one that is given as parameter to the published iexplorer, proper GPO’s (Global Policies) should be designed and applied for the users.

Cloud Computing From 60,000 Feet


“It starts with the premise that the data services and architecture should be on servers. We call it cloud computing – they should be in a ‘cloud’ somewhere. And that if you have the right kind of browser or the right kind of access, it doesn’t matter whether you have a PC or a Mac or a mobile phone or a BlackBerry or what have you – or new devices still to be developed – you can get access to the cloud…”
– Dr. Eric Schmidt, Google CEO, August 2006

In my opinion…

“Clouds are always good. For farmers it brings the sign of hope and confidence, for Company CIOs and CTOs, it brings the sign of growth in terms of effort and money savings at the edge of the competitive environment…”

One question that every CIO and CTO wants to have answer of “How to reduce the resources like servers without reducing the overall computational power and the profitability.”

Cloud Computing could be the ultimate answer.


As a user, when we are accessing the data from any device, from any location, we have no idea how processing of information is going around in the cloud. It’s just like a black box. 

Virtualization is the heart of Cloud computing.

Cloud can be classified as two broad categories:

  • Public Cloud
  • Private Cloud

Public Cloud:

Public Cloud could be any cloud maintained somewhere outside the company’s firewall/boundaries on some public domain. It has virtual data centers maintained by the cloud providers.

Believe or not, “Anyone with a web-based email account or a profile on a social network is already taking advantage of public cloud computing, whether they know it or not.” 


  • With this kind of model, information can be dynamically delivered on demand [subscription basis] and accessed from anywhere anytime. 
  • Resources in the cloud can be shared between multiple users and so they can be utilized to the maximum extend.
  • As cloud is outside companies boundaries, there is no way to know if anything is changed or upgraded because of some failure or unknown reason.
  • Any company can buy the raw processing power and the storage capacity and thus they can avoid the headache of maintaining it. It is best for the small or medium sized organizations as they do not have to buy any physical hardware or expertise to maintain it.
  • In terms of cost and usage, public cloud can be compared with the electricity usage. When you require it, switch on it, use it and pay for it. When you don’t, just switch off it and you do not have to pay for it. It’s called pay on demand.


  • Without proper security model, Public cloud could be prone to the security breaches and could lead to the failure. This could be termed as cloud bursting. Also, many companies do not want to put their sensitive data or IPR [intellectual property rights] data or mission critical transactions on to the public cloud.
  • Consumers will not have any control on the way, data could be stored/retrieved/accessed from the cloud.
  • The cost of using public clouds for extended period of time can turn out to be more expensive than owning the infrastructure in-house.

Private Cloud:

Private Cloud is confined to the company’s boundaries and is accessed from the outside world via firewall. Though with this kind of model, information can be dynamically delivered on demand but it can only be accessed by the authorized users from anywhere anytime with proper security boundaries via a firewall.


  • Without any fear, companies can put their mission critical transactions and data in their private data centers. This is the key advantage of Private cloud that they are more secure as IT department will have more control over the data and the way it can be accessed.


  • Due to the cost of hardware, data center space, technical expertise to know how to create and maintain it, it is not recommended for small or medium sized organizations.
  • Companies following this approach of private cloud are missing the benefits of the infinite processing power, infinite capacity, flexibility and Pay on demand offered by the public cloud.


As I have explained above that both Private and Public cloud has advantages and disadvantages so just using/adapting any one might not give the full benefits of the cloud computing. Using the mixture of both could be the good idea.

Public cloud can be used for non – sensitive data like it can host QA environment or the storage of less sensitive data. With proper security boundaries like with VPN, even some important data like email server can be hosted on the public cloud.

Private cloud can be used to host the sensitive data that requires high amount of security.


White Paper: “A Cloud Guide For HPC
Top Drivers, Barriers, Use Cases, and Vendor Requirements for Private and Public HPC Cloud Computing” by Mr. Ashar Baig

XenApp – Display memory – Dual Monitors

In the real world, many users are using Dual monitors to have big/extended display facilities. In such a scenario, if the users are working on graphics intensive applications like CADS, they might experience problems with dual display like:

  • they might not be able to extend / take the application screen to the other monitor in dual monitor system
  • they might be able to move but the image of the application screen might not get refreshed and user will feel like their display got freezed.

The most probable reason of the above issue is the lack of proper display memory allocation in XenApp environment.

To get rid of the above issue, XenApp administrator has to increase the display memory value to some higher value like 8192 KB [it is maximum value]. This could be done on server level or on the farm level as shown below:


The recommended way is to implement it on the farm and on servers select the option to use the farm settings. This way we can control it from the top level.

XenApp – Color depth in published application properties

The purpose of this article is to emphasize that the selection of proper color depth while publishing the application is very important and crucial for the application and network performance.

The choice needs to be made based on the application requirement. If application has simple GUI [Graphical user interface] and do not require too much color intensity/clarity, then we may select 16 colors or 256 colors option. For such applications, selecting higher color depth will not add any extra edge/efficiency, rather it will slow down the network and consume more memory.

If the application is graphics intense application like the CAD type of application, then we may have to select High color(16 bit) or True color(24 bit). Selecting lowers color depth, might blurred the image, where high clarity is required.

The higher color depth we will select, the more memory and CPU processing will be required.

In short, before selecting any color depth, proper analysis should be done to find out the actual color requirements of the applications. Sometimes we ignore these small points and end-up in user calls that application is behaving slowly.

To change the color depth during the application publishing, select the advanced option and at Appearance screen, select Colors from the dropdown menu. After application publishing, you can even change it by visiting the properties of the published application. In both cases you will get the window like:


XenApp – User’s Drive Mapping to shared locations – Continue

In my last article on User’s drive mapping, I had explained why we need drive mapping to the shared locations and how we can implement it using VBScript.

In this article I will explain what care we need to take when mapping any particular drive to the shared location. I will end the article with a scenario that I came across many times while doing drive mapping to the shared location.

When you are creating/designing the VBScript for the mapping logic make sure that you should not use

  • the pre-defined user mapped drives like the drives for Floppy disk [like A drive], CD ROM [like E drive], Users data [like M drive], Roaming profile[like X drive], main drives [like C, D drives] etc. so before implementing the VBScript, make sure that which drives are available for mapping purpose.

Scenario: Suppose you have an application AppA, you have a requirement that this application should be able to access five different shared locations through the mapped drives.

Implementation: To implement it you have selected M, N, O, P and Q drives. Let’s say that M drive at user’s machine is already mapped for the user data.

You have designed you VBScript based on the above drives. Once you are done and when you had published that VBScript in XenApp, your user will complain that they are able to use/access all the shared locations except the one location that they mentioned in the requirement document.

Troubleshooting: Now as a XenApp administrator, you should get the information from your system administrator that what drives at user’s machine are mapped to some pre-defined locations. Like in above case M drive that XenApp Admin selected, is already mapped to the user’s data and so he should not have used/mapped it to any location. Now he has to modify the VBScript to point to the available drives. Once done, users will be “happy happy joy joy” and will be able to access all the required shared locations.

XenApp – User’s Drive Mapping to shared locations

Scenario: In the traditional application access methodology, applications used to be installed on the client machines and when the user need some shared locations to be accessed from the application like for importing or saving some files to those locations, they use to map those location to some drives beforehand and thus they were able to access those shared locations from the application.

In the application virtualization, in SBC [Server based computing], all the applications are installed and run from the remote XenApp in the user’s session. By user’s session, I mean, when user connects to the remote application using XenApp client like web client, memory is allocated to the users where they can access applications, printers etc and whatever changes they did, those get saved to the roaming profile once they logs out from their session.

Now even if the application is installed and running from the remote servers, the users want their shared/mapped drives. To make this happen, we have to map the drives to the required locations during the application launch in the User’s session. We can use the below VBScript to map the drives before application launch. 

'# Language     VBscript
'# Script Name  Sample Script for XenApp   
'# Version      1.0
'# Author       Mohd Aslam
'# Date	     09.17.09
'# Description  This script maps drives to the required locations, then  
'#              executes the notepad program.
On Error Resume Next
Dim objFSO, objNetwork, WshShell
set WshShell = WScript.CreateObject("WScript.Shell")
set ObjFSO = CreateObject("Scripting.FileSystemObject")
set objNetwork = CreateObject("WScript.Network")
'If the "P" drive is already mapped, disconnect the mapping
 If (objFSO.DriveExists("p:")) Then
 objNetwork.RemoveNetworkDrive "p:", True, True
 End If
'Map the "P" drive to the required directory
 objNetwork.MapNetworkDrive "p:", "\\abcd\test\"
'Execute the Notepad program
 WshShell.Run "c:\Windows\notepad.exe",0,True

This VBScript is first checking if the drive that is supposed to be mapped, is available or not. If it is already mapped, it is disconnecting it and then mapping to the required location.

Once mapping is done, next step will be to launch the application.

Note: This VBScript should run in user’s session. This means that instead of publishing the application, we need to publish this VBScript. This VBScript will in turn call the application.

Result: After the successful execution of the VBScript, application will be launched and all the required drive mappings will be available to the users.