Category Archives: Citrix

CentOS 7 and Citrix – ctxvda status error

Over the course of the last few weeks, I’ve gotten an opportunity to explore building and publishing Linux virtual desktops using Citrix XenDesktop 7.11.  Now, I’m no Linux admin/expert which means configuring all this has been challenging at times even with the resources available on the web. Though the Linux VDA will support Red Hat, SUSE, and CentOS, I chose CentOS as my starting point because it’s free in that it does not require additional licensing to use beyond a 60-day demo period.

With that, my starting point for configuring CentOS 7 with XenDesktop 7.11 was the Citrix blog Installing the Linux VDA on Red Hat or CentOS 6.  I highly recommend this blog if you are new to Linux and need a launching pad from which to start your own feasibility testing for publishing Linux via Citrix.

Upon completing the installation of the Citrix VDA and executing ctxsetup to customize the VDA, I waited patiently (2 minute of hitting refresh) for the machine to register with the delivery controller but it never did and so commenced my Linux troubleshooting career.

1. On my Linux workstation, I started a terminal session and ran the command service ctxvda status to see if the VDA service was running:

1_ctxvda-failed

2. So the VDA service failed to start….but why?  Next I reviewed the VDA log file to see a reference to Citrix KB article CTX119736:

2_vda-log_error-message

Sweet!!!!  My solution is waiting for me….all I have to do is find the article and my issue will be resolved very shortly and I’ll be accessing my virtual desktop in no time.  BUT, if you try and find CTX119736, you’ll likely encounter the following:

2a_ctx119736-does-not-exist

3. Though I couldn’t find CTX119736, the more time I spent looking for it, the basic troubleshooting starting points became somewhat clear and really they are not that much different for Windows hosts….check the time, check the network, check name resolution, etc.  What I found going through those steps is that the time, the network and name resolution worked from the Linux workstation side, but the delivery controller could not ping the Linux workstation by name.  Looking at DNS on the server side revealed that though the workstation retrieved a DHCP address, a host (A) record was not created for it in DNS, thus the delivery controller could not communicate by name.  The DHCP scope options were set to dynamically update DNS records for clients that do not request updates.

3-dhcp-dns-dynamicupdate

4. I rebooted the Linux workstation and after doing so, the Citrix VDA service started and it successfully registered with the delivery controller.

4-ctxvda-service-running5_registration-successful

I was surprised that a name resolution issue kept the ctxvda service from starting altogether and it was one of the last basic options I checked.  I figured that if DNS/name resolution was the issue that the ctxvda service on the Linux workstation would start, but that registration would fail.  However, when troubleshooting ctxvda service errors from this point forward, name resolution will be my first test.

Leave a comment

Filed under Citrix, Linux, VDI

“Why can’t I click OK?” – Resizing the Citrix Logon Window

Many clients that I work with (I’d say over 90%), have logon disclaimers that must be acknowledged prior gaining access to enterprise resources…seen below is simply an example I found online to serve as a frame of reference:

1-examplebanner

When publishing applications from Citrix XenApp, if the logon banner is applied via GPO at the domain level, users must acknowledge the disclaimer when accessing published applications….so they acknowledge once when logging into their domain computer, and then again when launching published applications.

Thus, some organizations disable the logon disclaimer on the by disabling policy inheritance on the XenApp Server OU and others leave the disclaimer in place so as to ensure any users making XenApp connections from non-domain computers will have to acknowledge the logon disclaimer.

The problem I have seen when using Server 2012R2 is that the logon disclaimer is “larger” than it was with Server 2008R2 and thus when the users launched applications from the 2012R2 server, the logon disclaimer page had a scroll bar.  If the scroll bar was not to the far left of the disclaimer page, the OK button “wouldn’t work”, which confused the users.

Citrix support told me the logon disclaimer window has a default size of 600 (W) and 520 (H) but that the size can be adjusted (in this case increased) so as to get rid of the scroll bar in order to maintain the focus of the disclaimer window.  To set the width and height of the logon disclaimer window, add the following registry keys:

  • HKLM\Software\Wow6432node\Citrix\CtxHook\AppInit_DLLS\Multiple Monitor Hook
    • Name: LogonUIWidth | Type: REG_DWORD | Value: 800 (Decimal)
    • Name: LogonUIHeight | Type: REG_DWORD | Value: 600 (Decimal)

2-regkeys

After creating the keys shown above, the logon disclaimer window was larger, the scroll bar was gone, and the users could once again click OK without worrying about focus or scroll bars.  The change did not require a reboot of the XenApp server(s).

 

 

1 Comment

Filed under Citrix, Windows Server

Creating Custom EXEs with Smart Install Maker

On a recent Citrix project, I needed/wanted to do 3 things on end-user computers:

  • Remove the 11.x Citrix Web Plugin if it existed
  • Run the ReceiverCleanupUtility to uninstall older versions of the Online Plugin or Citrix Receiver
  • Install Citrix Receiver 4.4 using a custom command-line

Ultimately, I wanted the users to be able to do all this with a single click from the StoreFront page.  After a little research, Citrix has published steps on creating a custom Receiver package with Smart Install Maker.  I used Smart Install Maker to create a custom EXE to complete the 3 items listed above and will use StoreFront to make it available to the end-users.  This post is simply a recap of the steps required to create the EXE with screenshots.

1.Personally, I used VMware Workstation to create a “clean” VM (Windows 7) on which to install Smart Install Maker and test my custom EXE.  Perhaps you have access to other tools, but I recommend performing these tasks on your primary administrative device.

2.On my clean VM, I created a Receiver directory on the root of C and in that directory, I downloaded Citrix Receiver 4.4, the Citrix ReceiverCleanupUtility, and the .BAT file I created to perform these steps.  My .BAT file is shown below:

  • ECHO.
    ECHO Removing existing Citrix ICA/Receiver Clients
    REM ***********************************************************
    REM * The MsiExec executable uninstalls the Citrix Web Plugin *
    REM ***********************************************************
    MsiExec.exe /X{C0B165DC-F037-483F-B1C9-D89D91529CEB} /qn /norestart
    ReceiverCleanupUtility.exe /silent
    ECHO.
    ECHO Existing Citrix ICA/Receiver Client removed
    ECHO.
    ECHO Installing and Configuring Citrix Receiver 4.4
    CitrixReceiver.exe /includeSSON STORE0=”StoreService;https://yourstorefrontBaseURL.yourdomain.com/Citrix/Store/discovery;On;CTXStore” ALLOWADDSTORE=A ALLOWSAVEPWD=A

3. Download and install Smart Install Maker and your clean VM.  **Note:  A “full” copy of Smart Install Maker is $99.  If you do not purchase a full copy, you can use SIM for 30 days, though each execution of a custom EXE will display a “You are using a Demo” popup window.  The install of SIM is pretty straightforward.

4. Launch SIM.  On the Installer | General options screen, specify a name for the custom installation package in the Save as heading which determines where the final executable will be saved.  In this example, SIM will save the custom EXE (CustomSetup.exe) into the C:\Temp\Receiver folder.

2-Installer_GeneralOptions

5. On the Installer | Files options screen, click the plus icon (highlighted below) to add files to the project.

3-Install_Files

 

6. On the Add Item window, click the folder icon to the right of the Source file heading.

4-SourceFile.JPG

7. On the Open window, select the Citrix Receiver installation executable as well as any required BAT files and click Open.

5-Open

8. When returned to the Add Item window, change the Destination directory and click OK.  The destination directory is simply the location to which the process will copy any necessary files.  In this example, I changed the destination directory to C:\CitrixRec…when the custom EXE is executed on a remote computer, a C:\CitrixRec directory will be created which contains the files added into the project.

6-CitrixRec_DestinationDirectory

9. On the Installer | Dialogs options screen, select Silent installation and change the Destination Path to C:\CitrixRec.

7-File_Dialog

10. On the Installer | Commands options screen, click the plus icon (highlighted below) to command files to the project.

8-Install_Commands

11. On the Add Item screen, click the select file icon (highlighted below) to add command files to the package.

 

9-AddItem

12. On the Select a file window, select the BAT file used to install Citrix Receiver with customized settings and click OK.  When returned to the Add Item window, select After unpacking under Run schedule, then select the Wait until the application finishes checkbox and click OK.

10a-AddItemDone

10b-CommandsCompleted

13. On the top level menu, click Project | Build Installer.

11-BuildPackage

14. The project will begin to compile as shown below.  Click OK when compiling has completed successfully.

12a-Compile1

12b-Compile2

15. On the Compile screen, click Test if you want to test the new executable from the compile screen; otherwise click Close.

13-Test

16. Verify the success/failure of the package and make changes as required to the .BAT file. Once the package performs as desired, deploy and test the custom EXE to a pilot group, and then map out a strategy for deploying to the organization.

Leave a comment

Filed under Citrix, Utilities

Customizing Citrix StoreFront 3.x

Good stuff on customizing Citrix StoreFront 3.x…handy references when wanting to add some spice to your StoreFront implementations:

http://www.citrixguru.com/2016/03/08/lab-ultimate-storefront-customization-guide/

http://www.citrixguru.com/2015/07/03/storefront-3-optimizations/

http://www.carlstalhood.com/storefront-tweaks/

Leave a comment

Filed under Citrix

The Death of Citrix Provisioning Server?

I won’t go into great detail in regards to benefits of layering technologies when deploying VDI solutions.  I will say, and perhaps this is an oversimplification, that the goal of any layering technology (such as Unidesk or VMware App Volumes) is to simplify the deployment, management, and updating of operating systems and applications that comprise a virtual desktop environment using a building block approach.

In my head, I visualize OS and application layers as Lego’s.  I think of the OS layer as that big green piece which serves as the foundation and the smaller blocks, representing the application layers, are used to build whatever my mind imagines. Though I may have a finite number of pieces, I can use those pieces in an infinite number of ways.

So, what does this have to do with Citrix Provisioning Server?

Citrix Provisioning Services (PVS), often referred to as the “secret sauce” of any XenApp/XenDesktop deployment, provides a streaming service which allows physical or virtual computers to obtain an image from the network. When using PVS, an administrator prepares a Master Target Device for imaging by installing an operating system and any required applications on that device.  A vDisk image is created from the Master target device’s hard drive and saved to the network.  The Provisioning Server(s) are then configured to stream the vDisk to configured target devices on demand, in real time.

To date, PVS has been the primary method of deploying, managing, and updating server images to ensure consistency throughout the XenApp environment.  However, going forward, will PVS continue to be the primary method used to deploy new XenApp servers and ensure consistency throughout the environment?  As good as PVS is, I’ve encountered 2 main problems in which it is used in XenApp environments:

1. Gold image sprawl

  • Even in the most basic PVS environments, organizations will inevitably have multiple master images.
    • Some applications won’t work together with others and so multiple master images need to be created to separate applications which don’t necessarily mix well.
    • Multiple images may be created to support the publishing of different versions of the same application, for example, Office 2010 and Office 2013.  Since they cannot exist on the same server/image, a new image would be needed to publish both Office 2010 and Office 2013 simultaneously.
    • In regards to the previous two bullet points, I’ve assumed an organization has chosen to simply publish applications, but what if XenApp is used to publish desktops and different departments have different applications?  I know you can get crafty and “hide” the Program Files menu as well as the C:, using application publishing the Receiver to place application shortcuts on the desktop and I have seen customers do that to avoid deploying a master image for each unique use case….but I’ve also seen others deploy separate gold images to meet the need to each department.

2. Complexity

  • Though its true PVS makes deploying and managing XenApp easier, it can be complex in its own right
    • If a customer has no previous experience with PVS, I have experienced longer learning curves when deploying and attempting to teach the technology to new administrators.  I say attempting because I realize part of the problem in “getting” PVS may be in my teaching.  Regardless, it can take some time for the “light bulb” to go off and the administrator to feel confident in using the technology.
    • Depending gold image sprawl, you may also see PVS sprawl.  If the number of gold images and/or the number of user connections increase, you’ll likely need more Provisioning Servers to do the work.

Toward the end of last year, upon thinking of an upcoming project and the number of master images I’d need to support the various application mixtures, I had the thought that my life would be much easier if I could use application layering (specifically Unidesk in this case) to deploy my XenApp servers, avoiding PVS altogether.  In fact, I went so far as to open a case with Unidesk asking if this were possible, here’s the actual question I asked Unidesk support:

I got to thinking, “Is there any way I can use Unidesk to build Citrix XenApp servers?  And once I assign the layers to these servers, can I then publish them out like I would a typical XenApp scenario?  Can I replace Provisioning Server with Unidesk?”

Maybe I don’t love PVS as much as the next guy….but I thought, “O, to eliminate PVS!  O, to avoid the complexity of multiple master images! O, to be able to deploy XenApp servers using application layering!”….that may be somewhat of an embellishment, but the thought was a good one.  I firmly believed that if I could deploy XenApp servers with layers, I could eliminate gold image sprawl and the complexity of PVS.

Well unbeknownst to me, Unidesk and VMware, through App Volumes, thought the same thing and now (or very shortly), I will be able to use both Unidesk and VMware App Volumes to deploy XenApp servers using OS and application layering! Because layering separates the OS from the applications, an organization should be able to consolidate their PVS images into a single OS template (big green Lego pad) and then use application layers (Lego blocks) to construct and customize the XenApp server based on its specific purpose or use case.

Granted, layering won’t eliminate server silos; if you need to simultaneously publish Office 2010 and 2013, you’ll still need a group of XenApp servers with an Office 2010 application layer and another group with Office 2013, but layering will eliminate the need for multiple master images to support such a scenario.  Additionally, when using layering technologies to deliver XenApp, complexity is reduced since a PVS infrastructure, and all that it entails, is no longer required.

Think of the voice of the narrator from the old Batman TV show….”Is this the end of PVS?!”  I’ll commit to doing my part but ultimately, you’ll be the one who determines the answer.

Leave a comment

Filed under Citrix, Unidesk, VDI, VMware