VMware View – Objective 2.9 Configure Remote and/or Location Based Printing For View Desktops

Knowledge

  • Describe ThinPrint architecture
  • Identify ThinPrint services
  • Register .dll file
  • Configure GPO
  • Import location printing ADM file

Printing is the nemesis of the VDI world, how do we get that PDF from the View Desktop to the users client and enable everyone else to work?  We are now entering into the promised land.

OK, I have a confession to make, I despise printers, they are the root of all evil and probably the biggest pain for Desktop Support Engineer.  I don’t actually own a printer and to be honest, nor do I want to, so this particular objective is going to be theory based (well at least for me).

Now that I have that off my chest, I think we can carry on with Objective 2.9 Configure Remote and/or Location Based Printing For View Desktops

Describe ThinPrint Architecture

Before we talk this printing malarkey, it’s probably an idea to get an understanding of the steps taking to print inside a VDI environment.

In a traditional physical Desktop environment, the print flow is:

Physical Desktop User Prints > Desktop Print Spooler > Print Traffic Sent Across Network/USB > Print

The VDI environment follow the same principle, however the printer isn’t directly connected by LAN or USB.

View Desktop User Prints > Print Traffic Sent To Physical Windows Desktop > Physical Desktop Spooler > Print Traffic Sent Across Network/USB > Print

Now this isn’t so bad when working on the LAN, as the configuration we aren’t so worried about bandwidth, but when we are printing over a WAN, then we have some dramas!

VMware understood the challenges faced with printing inside the VDI environment and they licensed Thin Print under an OEM Agreement.

When you install the View Agent and the View Client, the ThinPrint drivers are automatically installed.

The print process works in the same way that I described above, however the print job is compressed and encrypted.  The steps are:

  1. User prints inside View Desktop, the print job is captured by the ‘ThinPrint Generic Driver’ which is automatically installed as part of the View Agent into the View Desktop.
  2. The print job is compressed by the ‘ThinPrint Generic Driver’ and then sent over the WAN to the Windows Physical Desktop.
  3. The Physical Windows Desktop (which has View Client installed) then decompresses the print job and sends it too the print spooler.
  4. The Physical Windows Desktop then spools the print job to the printer.

Print Drivers

I wanted to take a slight detour and talk about Printer Drivers.  The Print Driver needs to be available for the print job to happen, this can be achieved in a few ways.

Physical Windows Desktop this option can work if you are reusing old Windows Desktops to be your ‘dumb terminals’ . Just install the Print Drivers on the physical desktop.

Thin Client this causes us an issue as we cannot install any Print Drivers, as we have no host Operating System.  In this case we need to install the Print Drivers into the View Desktop.  If you have a Desktop Pool that is used company wide which has 50 printers, you don’t really want to ‘bloat’ your Linked Clone Image with all the drivers.  Instead you probably want to install Print Drivers on demand, which is something I will refer to later in this blog post.

Identify ThinPrint Services

We have two services which are installed on the View Desktop which are:

  • TP AutoConnect Service
  • TP VC Gateway Service

View Thin Print Services

The TP AutoConnect Service creates the printers in the users View Desktop

The TP VC Gateway Service is the grafter, it grabs the print data from the applications to enable it to be encrypted and compressed.

On the View Client (Physical Windows ) Desktop we don’t have any services installed, as it’s within the View Client, however we do have a registry key that we can alter to enable or disable ThinPrint.

Enabled HKEY_LOCAL_MACHINESOFTWAREWow6432NodeThinPrintClient Default State 0

Disabled HKEY_LOCAL_MACHINESOFTWAREWow6432NodeThinPrintClient Default State 1

View Client ThinPrint Registry

Register .dll File

To allow us to access the Group Policy settings for ThinPrint we need to register a .dll on an Active Directory Domain Controller.

The .dll is called TPVMGPoACmap.dll and is located on your Connection Server under C:Program FilesVMwareVMware ViewServerextrasGroupPolicyFilesThinPrintx64

Register DLL 1

Copy this .dll to the root of your Domain Controller.

Jump into the CMD and type regsvr 32 C:TPVMGPoACmap.dll

Register DLL 2

Boom, we have success!

Register DLL 3

Configure GPO

This is really straight forward, first of all we need to create a Group Policy, I’m rolling with a GPO called ‘Location Based Printing’ and I have linked it to the Organisational Unit ‘View Desktops’

Naturally, the GPO is blank at the moment.  Let’s edit it and go to Computer Configuration > Policies > Software Settings and you will see AutoConnect Map Additional Printers for VMware View

ThinPrint GPO 2

Double Click AutoConnect Map Additional Printers for VMware View and set the Policy to Enabled by Clicking in the Top Right Hand Corner

ThinPrint GPO 3

Import Location Printing ADM File

We have really imported the location ADM file by performing the above, I wanted to give you an overview of the Location Printing settings.

Click Add in the top left and you will see some columns appear ‘as if by printer magic’.

ThinPrint GPO 4

We can define who can access the printer by:

  • IP Range
  • Client Name
  • MAC Address
  • User/Group

In most environments it’s probably going to be via IP Range or User/Group

The Printer Name column, is the name we want the printer to appear as in the View Desktop.

The Printer Driver column, is really important, this is the driver which is installed on the Physical Desktop.  Ensure that you type this in exactly as it appears on the Physical Desktop.

If the printer is locally attached then you don’t need to enter any details in under the IP Port/ThinPrint Port.  If you are using a network printer then you need to enter it in the format IP_x.x.x.x e.g. IP_192.168.1.10

As you can see I have entered the details in for my Microsoft OneNote driver into AutoConnect Map Additional Printers

ThinPrint GPO 5

If we now check the ThinPrint Group Policy out you will see we have Extra Registry Settings Configured.

ThinPrint GPO 6

VMware View – Objective 2.8 Configure Role Based Administrators

Knowledge

  • Identify required folders
  • Create View folders for delegated administration and roles
  • Set permissions on a folder
  • Create the administrator roles
  • Assign folders and roles to user and/or groups

Identify Required Folders

View’s Permissions are based around Folders, and are designed to work with each Desktop Pool, so you can different View Administrators   for different users if you so wish.

The good news is I have covered all of the knowledge except for Creating View Folders already in VMware View – Objective 2.3 Configure View Standard & Replica Connection Servers under Section Identify Default Roles, Custom Roles, and What Permissions Are Available

To create a View Folder go to Inventory > Pools and Select Folder > New Folder

View Folder 1

Enter your Folder Name and Hit OK

View Folder 2

VMware View – Objective 2.6 Configure Advanced Display Protocol Settings (PCoIP/RDP)

Knowledge

  • Reference GPO templates
  • Describe RDP requirements
  • Locate ADM template files
  • Explain GPO settings including Describe “build to lossless” and Describe how to configure cache size
  • Identify maximum number of monitors and resolution
  • Configure Flash quality and throttling
  • Configure software 3D rendering capabilities

Reference GPO Templates

View comes with a number of built in Group Policy templates which are as follows:

View GPO

For a full break down of each Group Policy setting, I recommend reading the VMware View Administration – View 5.0 guide.

Describe RDP Requirements

To enable users to connect to there View Desktop, RDP has to be enabled on the Operating System.  When they grant the View Desktop Users access to a Restricted Group called ‘Remote Desktop Users’ and apply this group policy to the Organisational Unit that the View Desktops will be held.

I covered the configuration steps in VMware View – Objective 1.5 Preparing Active Directory For Installation under Section Remote Desktop Users.

The requirements for RDP are as follows:

  • Remote Desktop Connection 6.x > Windows XP
  • Remote Desktop Connection 6.x or 7.x > Windows Vista
  • Remote Desktop Connnection 7.x > Windows 7

The good news any of the above RDC protocols support dual monitors!

Locate ADM Template Files

The ADM Template Files are located on your View Connection Server under …VMwareVMware ViewServerextrasGroupPolicyFiles

A bit like Blue Peter, I made this earlier which shows you how to import the ADM Templates VMware View – Objective 1.5 Preparing Active Directory For Installation under Template Files.

Explain GPO Settings Including Describe “Build To Lossless” and Describe How To Configure Cache Size

I feel like a parrot repeating myself, but here goes, for a full break down of each Group Policy setting, I recommend reading the VMware View Administration – View 5.0 guide.

One of the most important features of the PCoIP protocol is ‘build to lossless’ so what does this actually mean.  Well the essence of ‘build to lossless’ is to give the user the best experience possible.

Let’s say a user is in a cafe, and the are using there mobile phone to act as there WAP.  The likelihood is the connection will have high latency and there bandwidth is probably less than 1 Mbps. Rather than sending the complete desktop image immediately, the PCoIP protocol will send it in a ‘lossy’ state first which is a highly compressed initial image.  As the connection continues more data is sent and the ‘lossy’ initial image becomes fully rendered.

The good news is the user, has no idea this is going on in the background, they just think it’s sheer awesomeness!

PCoIP is a clever little protocol, as it uses the clients (dumb terminal) memory to cache portions of the display to save them having to be re-transmitted and re-rendered.  Currently this setting is only supported in Windows and Linux.

The VMware View PCoIP Session Variable ADM contains the setting.  If this isn’t configured or enabled then PCoIP uses 250MB.  If you do configure it, then the minimum setting is 50MB and the maximum is 300MB.

To get to this settings open up Group Policy Editor > View PCoIP > Computer Configuration > Policies > Administrative Templates > Classic Administrative Templates > PCoIP Session Variables > Not Overridable Administrator Settings > Configure PCoIP Client Image Cache Size Policy

PCoIP Client Image Cache Size Policy

Identify Maximum Number Of Monitors and Resolution

If you really want too, you can have four monitors running up to 2560 x 1600 display on each!

Or if you want to roll with 3D enabled, then I’m afraid it’s only two monitors at 1920 x 1200.

Configure Flash Quality and Throttling

Before we go into the configuration, a couple of items about Flash.

  1. Bandwidth reduction is only available in Internet Explorer with Flash version 9 or 10.
  2. Flash cannot be running in full screen mode

Flash settings are configured per pool.  To change settings go too Inventory > Pools > Edit Pool Settings > Scroll Down to Adobe Flash Settings

Flash Settings

Naturally, you can select the Flash settings that work best for your environment.

Configure Software 3D Rendering Capabilities

So you really want to use the Windows 7 Aero theme? Well good news is that View supports it, however you need to make sure the following requirements are met:

  • ESXi 5.0 or later Hosts
  • vCenter 5.0 or later
  • Desktops must use Virtual Hardware 8 or later
  • PCoIP must be used
  • Users cannot choose there own display protocol

To enable 3D Rendering go too Inventory > Pools > Edit Pool Settings and change the following:

  • Default display protocol PCoIP
  • Allow users to choose protocol No
  • Windows 7 3D Rendering Enabled

3D Rendering

VMware View – Objective 2.5 – Configure View Transfer Servers

Knowledge

  • Identify Transfer Server repository
  • Identify vCenter Server that contains the Transfer Server
  • Identify the Transfer Server virtual machine

I’m not going to follow protocol on this blog post, as I want to show you the configuration steps, you will see by doing this we cover the objectives above with ease.

The Transfer Server Repository is the location for your Linked Clone Replicas (the snapshot of your original Operating System) or your Manual Desktop Pool.  It’s worthwhile noting that the Transfer Server can only be used with Dedicated Desktops, not Floating Desktops.

If you are rolling with Linked Clones, then you need to Publish your Snapshot which is the base image for your Linked Clone Pool.

Couple of caveats before we move forward:

  • Make sure your VM is running Hardware Version 7 (at the time of this post 8 is meant to be supported but I haven’t tested it yet).
  • Make sure that your Transfer Server SCSI Controller is set to LSI Logic Parallel

The Transfer Server Repository can be a network share located on another server or NAS, or in my case it’s an extra VMDK added to the VMF-TR01.

I have already added my Transfer Server into View to make sure I had it working before I did a blog post!

However, the process to enable the Transfer Server is fairly straight forward, go to View Configuration > Servers > Transfers and Select Add and choose your vCenter Server

View Transfer 1

Select your Transfer Server from the drop down list and Click Finish

View Transfer 2

Next we need to add some images to our Repository, so click on Transfer Server Repository and Click Edit and we get an epic failure ‘the settings for the Transfer Server repository cannot be edited until all the Transfer Servers are placed into maintenance mode’.

View Transfer 3

Simple fix, we just need to do what View tells us.  We need to Enter Maintenance Mode, by virtue of this, no new transfer will be able to take place, so bear this in mind in production.

View Transfer 4

Cool, now we are in Maintenance Mode, we can add an Image to our Repository.  First thing we are going to do is add another HDD to our Transfer Server.  You can see that I have added a 100GB VMDK Thinly Provisioned

View Transfer 5

In this instance, I have created a D: Partition called Data and a Folder named ‘TransferServerRepository’

View Transfer 6

This folder has then been shared out and I have given the Active Directory User ‘service.view’ Read, Write and Modify permissions.

Back to View Administrator and we want to Edit the Transfer Server Repository and enter the following details:

  • Network Share \vmf-tr01TransferServerRepository
  • User Name service.view
  • Password Password
  • Domain vmfocus.local

View Transfer 7

Now we need to Publish our Snapshot to the Transfer Server Repository.  Hit the Contents Tab and Click Publish and we get another epic fail ‘Publishing is not enabled because no Transfer Servers are currently working properly’.

View Transfer 8

The reason being we are still in ‘Maintenance Mode’ so lets ‘Exit Maintenance Mode’ and try again.

Cool, select your View Composer Image and Click OK (mines already been uploaded).

View Transfer 9

This is going to take quite a while, so it might be worth grabbing a cup of tea.

Once it’s all done you should see that the Image is Published and the Transfer Server is Ready.

View Transfer 10

That’s this objective done, we play around with the Transfer Server in a bit more detail during Objective 2.10

VMware View – Objective 2.4 Configure View Security Server

Knowledge

  • Configure View Connection Server backup settings
  • Identify external URL settings
  • Identify PCoIP secure gateway
  • Identify View Connection Server general settings
  • Edit View Security Server settings

Configure View Connection Server Backup Settings

So what actually needs backing up? Well the following components

  • View Connection Server
  • View Connection Server Active Directory Lightweight Directory Service
  • View Composer Database
  • View Security Server

We covered where to find the backup settings and how to backup the View Connection Server in VMware View – Objective 2.2 Configure View Standard & Replica Connection Servers.

The good news is that in this backup location we also have a copy of the View Connection Server Active Directory Lightweight Directory Service.

You can confirm this by accessing your View Connection Server and browsing too C:ProgramDataVMwareVDMbackups

View Backups

To backup the View Composer Database you can do this manually by stopping the View Composer Service and then logging into SQL Server Management Studio and Right Click the Database selecting Tasks and then Backup.

View Backups 2

However, most likely you wouldn’t want to stop the View Composer Service as Linked Clone Desktops won’t be available. Rather you would use a product such as Veeam or Unitrends to create a VSS Snapshot of your SQL Server instead.

Last of all VMware recommend you backup your Security Server on a monthly basis, as the server is static (data doesn’t change).

Identify External URL Settings

To allow remote users to access there View Desktop we need to enable access from the outside world.   This is where the External URL Settings come into play.

We need to use a Public IP Address which has an A record assigned to it e.g.

12.89.23.1 = view.vmfocus.com

This Public IP Address then needs to be routed and NAT’d to our View Security Server on Ports:

  • TCP 443 Inbound
  • TCP 4172 Inbound
  • UDP 4172 Inbound

To find the location of your External URL Settings go to View Configuration > Servers > Security Servers > Edit

View External URL

As you can see, I have updated mine already to https://view.vmfocus.com:443 and 12.89.23.1:4172

Identify PCoIP Secure Gateway

I mentioned back when we installed the Security Server that the PCoIP Gateway wasn’t enabled. So what is the PCoIP Secure Gateway?

Well it allows secure connections to your View Desktop remotely.  No VPN Client software required, how awesome is that?

To enable PCoIP Secure Gateway go to View Configuration > Servers > General and place a tick in ‘Use PCoIP Secure Gateway for PCoIP connections to desktop’.

PCoIP Secure Gateway

Note, when you have the Security Server role installed all connections go via this rather than too the Connection Server.

Identify View Connection Server General Settings

I’m slightly ‘miffed’ by this one, I don’t really understand what VMware want.  I have searched through the Administration  Security and Install guides and I can’t see anything relevant.  So onto the next part.

Edit View Security Server Settings

The Security Server Settings are located under View Configuration > Servers > Security Servers > Select Security Server > Edit

Security Server 1

Not a huge amount to see really, the only items we can change are the External URL and the Public IP Address.  We covered both of these earlier on i this blog post.  So it’s time to move onto the next objective.