VMware Horizon Community
caryers
Contributor
Contributor

Network Printing via VDI View

We are an AD shop with a 4.6 VDI POC that will turn into a 100 user Pilot next month.

Currently, we establish network printers based on the client's local IP networks via GPO. VDI will replace our Citrix portal(hopefully) in the near future, and we also envision using VDI for our remote satellite offices. Removing the local server and either given them a thin client or simply pushing the View client down to them so they can access local resources at HQ. Standard stuff, right!

So with that said, our VDI VMs are currently using just 1 DHCP vLAN. So our current remote network printing GPO will not work for those new VDI users at our satellite offices. I am not worried about locally attached printers, but their network printers. I have already determine that these remote users can simply browse to the print server and double-click on their network printer fine and it will be added to the VDI desktop. So really no issues getting network printing to work, but moreso the automation of their network printers.

What are you VDI veterans in an AD shop using to deploy network printers? I will need automation as we will be leveraging linked-clones with a recompose slated for once a month. (Therefore, any manual network printer establishments will have to be re-established)

Thanks in advance...

0 Kudos
8 Replies
stimmons
Enthusiast
Enthusiast

Vmware Views Location Based printing works very well to manage printers by AD user object, AD group, thin client host, etc.  If you have groups which separate your remote office users from others, this may be the easiest method.

Group Policy Preferences along with the use of Item Level Targettings can also be used. Item level targetting can utilize many different variables to install a printer for a person, group, etc. ..it has up to 20 different variables to choose from. If your IP networks for each of your remote locations is separated by AD SItes, GPolicy Preferences can also target by AD Site as well.

0 Kudos
nolent
Enthusiast
Enthusiast

Let me elaborate on our environment. We are currently using Preference mode policy GPO to deploy printers, we have use item level targeting to which determines the client's IP address and then installs the necessary printers. We will not be able to do this going forward because the client's IP address will be the IP of the virtual desktop, not the IP of the PC/thin client/whatever device they are actually WORKING from. I know we can use AD groups to assign printers, but that is NOT an option in our environment. It's just completely unmanagable.

Is there some method where the end device IP address can be determined and passed to policy somehow? This is a big hangup for us right now.

0 Kudos
stimmons
Enthusiast
Enthusiast

You can still use location based printing (LBP) via the Group Policy Object.  Location based printing allows you to install printers using an IP Range. The IP range is the IP Range of the device connecting to the Virtual Desktop whether its a PC running the view client or a thin client. The only caveat with LBP is that it prints directly to the printers by IP Address. LBP doesn't allow the use of a print server or host name. At least in my experience.

Set the range like this in LBP:   10.100.100.0-10.100.100.255

It also assumes the print drivers are on the template for the printers themselves. Check out this site:  http://www.virtualizationteam.com/virtualization-vmware/vmware-view-virtualization-vmware/vmware-vie...

The IP address information that it pulls is stored on each virtual desktop upon connectivity in a volatile registry key. If you didn't want to use LBP, you could create a login script method to add the printers by IP range or segment.  I query this key in my environment to determine where user logs in from. My example of this is below:

FOR /F "tokens=3 DELIMS= " %%? IN ('REG QUERY "HKCU\Volatile Environment" /v ViewClient_Machine_Name') DO SET USERMACH=%%?

I use the %USERMACH% to log each users workstation for troubleshooting purposes. This same HCKU\Volatile Env. also stores the IP address of the connecting device.

I hope that helps.

0 Kudos
nolent
Enthusiast
Enthusiast

I dont believe your information is correct.

I AM using LBP via GPO, however, it is pulling the IP address of the virtual machine, not the IP address of the device the user is connecting FROM. Printers install fine if I input the IP subnet of the VM, however, if I put in any client IP subnet's the policy does not apply because it does not know the clients IP address. This is actually the expected behaviour, I was surprised when you wrote back saying it would work.

Furthermore, the IP of the connecting device is not stored in HKCU\Environment, I verified this. Even if you could enumerate the client's "real" IP address, I would prefer to not use batch files, I would like to continue to use my existing GPO environment.

0 Kudos
stimmons
Enthusiast
Enthusiast

I don't know what version of view you are using but the IP range is from the client device. VMWare View documentation also states:

"The network printer specified in the second row will be mapped to a View desktop only if the client system has an IP address in the range 10.112.116.140 through 10.112.116.145." VMWare View Admin Guide 4.6 Page 157

And the registry, does show the client IP address. I just extraced this from a session I was just on. My IP is the 23.57 on my connecting device.

[HKEY_CURRENT_USER\Volatile Environment]

"ViewClient_IP_Address"="10.127.23.57"
"ViewClient_MAC_Address"="00-23-24-00-AC-1B"
"ViewClient_Broker_DNS_Name"="<broker name>"
"ViewClient_Machine_Name"="<wkstn name>"
"ViewClient_Type"="Windows"
"ViewClient_Broker_Tunneled"="false"
"ViewClient_LoggedOn_Username"="<username>"
"ViewClient_Broker_Remote_IP_Address"="10.127.23.57"

If you setup LBP by IP Range and it isn't working, I would contact VMWare to resolve this problem.

0 Kudos
nolent
Enthusiast
Enthusiast

After a long weekend, I am getting back on this. I have some more questions, I think I see what I was doing wrong but need a couple clarifications:

1. Do you have to register the TPVMGPoACmap.dll on all client PC's as well as the VM's?

2. Drivers: how do you handle drivers? Inside the deployment gui, there is no way to pick the driver, and I am at a loss as to why this is even necessary. I just typed in the name of the driver and that does not work.

0 Kudos
stimmons
Enthusiast
Enthusiast

1. Do you have to register the TPVMGPoACmap.dll on all client PC's as well as the VM's?

You only need to register this on the PC managing the group policy.

2. Drivers: how do you handle drivers? Inside the deployment gui, there is no way to pick the driver, and I am at a loss as to why this is even necessary. I just typed in the name of the driver and that does not work.

We make sure the drivers are installed on the virtual desktops. For most HP printers we're using the Universal Print driver.  The name you type for the driver needs to match the driver name installed on the virtual desktop to the letter and it is case sensitive.

0 Kudos
nolent
Enthusiast
Enthusiast

Is there any sort of logging or event log entry it is supposed to throw if it fails? I did not see anything in the event viewer. I think my hangup at this point is the driver issue. I do not have the drivers installed on the VM's, but I cannot verify this. I would think that if it could not find the driver, it would throw an error, I just want to make sure I am on the right path.

0 Kudos