Configuring the Citrix Universal Printer

I might be a bit late to the party on this, but I just haven’t had a chance to play with this until just recently so here is a quick walk through on setting up the Citrix Universal Print Server.  It is not difficult but there are a few things you might find here to save you some time.  You can read about the details of the UPS all over the place but the short story is, the UPS will allow you to have session printers without the need to install drivers directly on the XA servers.  And we all know what a potential pain that can be.

If you haven’t done so already, I’d suggest installing HotFix Rollup Pack 2.  This rollup fixes many general printing issue.

Download the Universal Print Server from your MyCitrix account in the XenApp 6.5 Feature Pack 1 Components section.

NOTE: If anything is listening on port 8080 of your print server, this installation will fail and give you very little information as to why it failed, other than “Citrix Universal Print Server Installation failed.”  

Installing the software:

a.       Install UPClient on the XenApp server(s) following the on-screen instructions.

The spooler restarts automatically at the end of the UPClient installation, and the new Universal printer driver is installed.

b.       On the computer where you use the Citrix Group Policy Management Console, install the Group Policy Management software by double-clicking the CitrixGroupPolicyManagement MSI and following the on-screen instructions.

c.      On the Print Server, install UPServer by double-clicking CitrixUPServer_SelfExtractor.exe and following the on-screen instructions.

The UPServer component installs the following services:

  • XTE Service – Installed under the Network Service account and configured for automatic start (dependent on the Citrix Print Service).
  • Citrix Print Service – Installed under the Local Service account and configured for automatic start. After starting, the Citrix Print Service configures the XTE Service, which then starts.

d.      Enable the Citrix Universal Print Server through Citrix Policies.  This can be done in the Citrix App Center or via Group Policy.

  • Drill down on the Policies node under the XenApp65 farm
  • Citrix Computer Policies > Unfiltered (or create a new policy if you so choose)> Edit
  • Edit Policy > Settings
  • Select Printing > Universal Print ServerUniversal Print Server enable > Add > Enabled with fallback to Windows’ native remote printing (This will fall back the client printing and allow for them to print outside the virtual print channel direct to the print server.)

e.      You can confirm if the print server client loaded correctly by checking for the UpProv.dll file.

  • On the XA server, pull up the command prompt.
  • Type:  tasklist /m /fi “imagename eq spoolsv.exe” > c:\CitrixUPS.txt.  (This will pipe the contents of the command to a text file in the root of the C: drive.)
  • Open this file with your favorite text editor and search for UpProv.dll.
  • Locating this file confirms the UPS has loaded.


To test if the Universal Print Server is working, create a session printer as normal using a Citrix policy.  Point the policy to the UNC path of the printer on the print server.   Do not load any drivers on the XA server.  Launch a Citrix published app like Notepad.  You should see your session printer.

In Notepad, select File | Print, right click on the session printer, Properties, Advanced and check the driver.  It should show the driver as the Citrix Universal Printer.

Force Deletion of Desktop Group

I recently ran into an issue where the the desktops did not accurately reflect their status in Desktop Studio. In other words, the machines were powered down in VMware but showed as being still powered on in Desk Studio. Why this might have happened is another story. Perhaps the config in Vmware changed, don’t know but that is certainly worth investigating.

In this case, I didn’t care. I just wanted to power off the machines so I could delete the group and start over. The problem is, the GUI won’t let you delete the catalog if it thinks the machines are power up. Even putting them in maintenance mode wouldn’t work.

If you want to forcibly remove the Desktop group, open PowerShell. You can list the Desktop groups by typing: Get-BrokerDesktopGroup. To get a more concise list of just the names of the group: Get-BrokerDesktopGroup | ft name

Find the name of the group you want to remove and type: Remove-BrokerDesktopGroup -Name “groupname” -Force.

That’s it. No warning. No “are you really sure you want to do this”. Just Poof and gone. Enjoy.

Comments Off on Force Deletion of Desktop Group Posted in General

Need to add local storage to a XenServer host after installation

I recently needed to add some local storage to a XS 6 installation.  Just power down, add the drive, maybe configure a logical drive in the array and boot up?  XenServer should see the new drive, right?

Not exactly.  The drive won’t show up until you go into the shell and create it.

Log into the shell:  fdisk -l   to list the disks.  That is a lower case L.

Your new drive should show up in the list.  In my case it was called /dev/cciss/c0d1

To ‘create’ the drive type: pvcreate <device name> .  So in my case it was: pvcreate /dev/cciss/c0d1

Last step is to configure it to be local storage and give it a label: xe sr-create type=lvm content-type=user device-config:device=/dev/disk/by-id/dev/cciss/c0di name-label=”Local Disk 2”

You will need to enter the name of your disk in place of where I have /dev/cciss/c0di.

No need to reboot.  Once the above commands are entered, the disk will now show up in XenCenter.


Renaming a Provisioned VM

The other day a client asked me if we could rename one of the provisioned Citrix servers.  I had to think for a minute.  Could you?  Do you just rename the VM?  Do you just rename it in the PSC? I asked a couple co-workers and none of them had done it either.  I had my hunches but it just wasn’t something I’d done before.  So rather than experiment on a production system, I thought this would be a good test in my lab.  What do you think?  Nothing to it?

Well, as it turns out there isn’t really anything to it.  I just renamed the device in the device collection under the properties menu of the device and then selected the Active Directory option after right clicking on the device and had PVS create a new machine account.  I rebooted the machine and sure enough, it booted up with the new name.  Simple stuff.

You’ll probably want to go into AD and delete the old machine account and clean things up.  Your VM will also still retain the old name so you might consider renaming that in your hypervisor.   In this case I was using vSphere.  Renaming the VM in vCenter will make things a little easier to keep track of but remember, that won’t rename the associated files.  They will still retain the old name.  The easiest way to correct that issue is to do a storage vmotion or a cold migration.  The storage vmotion will rename the vmdk’s and other files associated with that VM to match the name of the VM in vCenter.  However – not in vSphere 5.  For some reason it seems that little feature was removed from vSphere 5.  Why?  Something to do with disk numbering.  I don’t know, but I’m hoping that functionality will return.  I guess you’ll have to go to a VMwareGeeks site for that.


Comments Off on Renaming a Provisioned VM Posted in PVS

Disable Power Management for a Desktop Group

I was doing some testing with various settings and catalogs in XD 5.6.  After assigning myself a machine for my testing, I would notice it would shut down after I logged off.  Since I was using this desktop on a fairly regular basis, I didn’t want to have it shut down, then have to wait for it to power back up before using it again.  But how do I disable the power management for just that group?

With assigned machines, XD wants to have all the machines available for peak hours.  During off peak hours however, machines without logged in users will be turned off.  Most of my testing was being done during off peak hours, so as soon as I logged off, the machine was shut down.  Unless I tried to connect again during peak hours, my desktop was turned off and I would have to wait for it to power on before I could connect.   Of course I could extend the time of peak hours in the power settings of the Desktop Group, but I wanted to disable the setting completely.  In other words, I didn’t want any power management at all for the group.

A little digging in PowerShell was helpful.  Running the ‘Get-BrokerDesktopGroup’ command returns several variables, one of which is ‘AutomaticPowerOnForAssigned’ object.  Setting that object to False fixed the issue.

  • Set-BrokerDesktopGroup “groupname” -AutomaticPowerOnForAssigned $False

By the way, XenDesktop includes several powershell commands.  All the required snapins may not be loaded even though they are installed on the server.  You can see which snapins are loaded or ‘registered’ on the server by running the ‘Get-Pssnapin -Registered’ command.  My server returns the following:

  • Name        : Citrix.ADIdentity.Admin.V1
    PSVersion   : 2.0
    Description : Manages Active Directory Computer Accounts

    Name        : Citrix.Broker.Admin.V1
    PSVersion   : 2.0
    Description : This PowerShell snap-in contains cmdlets used to manage the Citrix Broker.

    Name        : Citrix.Common.Commands
    PSVersion   : 2.0
    Description : Citrix Common Commands

    Name        : Citrix.Common.GroupPolicy
    PSVersion   : 2.0
    Description : Citrix Group Policy Provider

    Name        : Citrix.Configuration.Admin.V1
    PSVersion   : 2.0
    Description : Stores Service configuration information

    Name        : Citrix.Host.Admin.V1
    PSVersion   : 2.0
    Description : Manages Hosts, and Hypervisor Connections

    Name        : Citrix.LicensingConfig.Admin.V1
    PSVersion   : 2.0
    Description : Licensing Config PowerShell SnapIn

    Name        : Citrix.MachineCreation.Admin.V1
    PSVersion   : 2.0
    Description : Creates new Virtual Machines

    Name        : Citrix.MachineIdentity.Admin.V1
    PSVersion   : 2.0
    Description : Manages Virtual Machine Storage

    Name        : PvsPsSnapIn
    PSVersion   : 2.0
    Description : This is a PowerShell snap-in that includes cmdlets.

You will most likely have to load these snapins before running the ‘Get-BrokerDesktopGroup‘ command above.  Running ‘Get-Pssnapin -Registered | Add-Pssnapin‘ should get the required snapins loaded.




Upgrading XenDesktop 5.5 to 5.6

Is there an in place upgrade from XenDesktop 5.5 to version 5.6 you ask?  Well yes Virginia, there is.  In fact, I recently did it.  There really is nothing to it.

You will need to upgrade your license server to at least version 11.10. (Supported Platforms: Windows 7 (32/64bit), Windows Server 2008R2, Windows Server 2008 (32/64bit), and Windows Server 2003 (32/64bit).  This shouldn’t present a problem for anyone but check and back up your system and licenses before upgrading.

Download the upgrade from Citrix’s web site.  Of course a login is required.  As you may know, the full download of XD is a hefty 20.6 GB.  This includes everything.  You can do a custom download and only select the pieces you need.

The installation was literally a wizard with a couple of clicks and Finish.  When you start Desktop Studio for the first time after the upgrade, there will be an option in the center console to upgrade the database.  Both an automatic and manual option are available.  If you select Manual, it gives you the Powershell commands to upgrade the database yourself if you are so inclined or have a need to do so.  I selected Automatic.

That was about it.  Happy upgrading.


Comments Off on Upgrading XenDesktop 5.5 to 5.6 Posted in XenDesktop