«

»

Mar 15 2013

How to: Win2K8 w/ PCoIP, Linked Clones, USB, Printing & much more on VMware View (DaaS)

One of the most common requests I get from customer and partners is – When will VMware View support Windows 2K8 as Guest OS?

As most of you probably know Microsoft does not provide SPLA licensing model for Windows 7 to allow customers and service providers to create Desktop-as-a-Service offerings using Enterprise grade VDI solutions such as Horizon View. However, Windows Server 2K8 does provides SPLA licensing model and if those customers and service providers are able to deliver Windows Server 2K8 combined with the new Horizon View Multi-VLAN feature they could effectively service a large part of the DaaS market without incurring into Microsoft licensing issues.

Please note that I am not inferring that Horizon View with Windows 2K8 is effectively Desktop-as-a-Service, like some of the vendors out there. I personally believe DaaS is much more than simply delivering Win2K8 desktops, and that it should embrace key important concepts such as Mobility, Portability, Automated Provisioning, Identify management, Federation, multi-tenancy at all layers, chargeback, and an easy-to-use self-service web portal where user can consume services. This is subject for another article. However, the solution below, despite unsupported, will effectively put customers and service providers in alignment with Microsoft licensing.

 

If you are an avid reader of my blog you will remember that I published back in 2012 a guide on how How to Access Windows 2K8 Server via PCoIP. That hack is currently being used by many customers, but it was not effectively easy to deploy because it required the administrator to hack into the VMware View database and manually add each desktop. Furthermore, Linked Clones and many other features such as printing and USB redirection were not working. But, you don’t need to go back to my old article because all you need is here and in a much simpler way.

 

I cooked up something TOTALLY UNSUPPORTED BY VMWARE that will allow customers and partners to provision VMware View desktops using Windows 2K8 Server, PCoIP, Linked Clones, ThinPrint, SmartCards, Persona Management and USB redirection; all in a natural and automated fashion.

 

Important Note: The techniques below has been only tested by me for the latest VMware View 5.1 release.

 

The only changes you will have to make to get the solution working is to the standard VMware View Agent 64-bit before you install it on your parent VM. VMware View Agent uses Microsoft Installer to run a series of validations to understand what components should or should not be installed and what conditions should follow. For Windows 2K8 specifically, VMware View agent will only allow Terminal Services Access Pools with the connection protocol being RDP. So, first we need to open and hack the View Agent.

You will need to download Orca. Orca MSI Editor allows you to edit the properties of any MSI file. With this tool, you can change the title and text within the installer and look at how and where the files are delivered. Once installed you can right-click any MSI and select Open with Orca. This tool used to be a part of Microsoft Developer Tools but is now retired and no longer supported.

Download Orca from here.

 

The steps outlined below are not supported by VMware. I recommend testing in development environment. If you decide to test or implement you are doing it on your own risk.

 

 

  1. On a Windows 2K8 R2 Server with latest VMware Tools installed execute the installation VMware View 5.1 Agent package (VMware-viewagent-x86_64-5.1.2-928164). Do not click Install or Next.
  2. Go to %temp% folder, typing %temp% at the Run prompt.
  3. Find the folder containing the unpacked installation files and copy them to a temporary folder on your desktop.
  4. Using the Orca utility open ‘VMware View Agent64.msi’ file existing in the temp folder.
  5. Navigate to ‘Condition’ table.
  6. Delete the conditions from PCoIP (0), SVIAgent (0), SmartCard (0), ThinPrint (0), and USB (0) features. Delete only the content of the condition, not dropping the entire row. Save the changes.Screen Shot 2013-03-15 at 10.38.24 AM
  7. In ControlEvent table set:
    1. Dialog CustomSetup, argument ConnectionServer, set condition to 0
    2. Dialog CustomSetup, argument ReadyToInstall, set condition to 1Screen Shot 2013-03-15 at 10.39.04 AM
  8. In InstallExecuteSequence Table set:
    1. Action VM_AddLDAPMachineEntry_SD.2EDC2186_29E9_4662_86CD_26051967D0CA, set condition to 0
    2. Action VM_AddLDAPMachineEntry.2EDC2186_29E9_4662_86CD_26051967D0CA, set condition to 0Screen Shot 2013-03-15 at 10.39.55 AM
  9. In Registry Table set:
    1. Registry vcManaged, set Value to #1Screen Shot 2013-03-13 at 5.06.22 PM
  10. Save the VMware View Agent64.msi and copy all the files to a temporary folder in your Windows 2K8 VM.
  11. Execute ‘VMware View Agent64.msi’ and go through the install normally.
  12. This is a critical step to ensure VMware View Composer is will customize the desktop and bypass the OS version check. Replace C:\Program Files (x86)\Commom Files\VMware\View Composer Guest Agent\vmware-svi-ga.exe with the patched file you download from here.Screen Shot 2013-03-15 at 11.29.15 AM
  13. Open the Windows Device Manager; go to ‘Display Adapters’ and select ‘Update Driver…’
    Select ‘Browse my computer for driver software’ and ‘Let me pick from a list of device drivers on my computer’. (optionally, if you see the VMware 3D driver available in ‘Display Adapters’ you may select it and skip step 13.
  14. On the following screen select ‘Have Disk…’ and select the wddm_video driver at C:\Program Files\Common Files\VMware\Drivers\wddm_video\vm3d.inf. Without changing the video driver PCoIP will not work.
  15. We are almost done! The next procedure will ensure that new View Composer internal disk goes online when attached to the Linked Clone VM. Open command prompt and type DISKPART.exe. Now type DISKPART > san policy=OnlineAll. Type exit.Screen Shot 2013-03-15 at 11.01.59 AM
  16. Close the command prompt window shutdown the server.
  17. Next you will need to change the VM OS type to Windows 7 (64-bit) so VMware View can recognize it as a valid Parent VM for View Composer.Screen Shot 2013-03-15 at 10.40.40 AM
  18. Take a Snapshot of the VM and you are done!

 

From now on just create desktops pools the same way you always do. Use Automated Provisioning, Dedicated or Floating, Horizon View Composer linked clones. Here is my Windows 2K8 configuration:

 

Screen Shot 2013-03-15 at 11.05.43 AM

 

This article was first published by Andre Leibovici (@andreleibovici) at myvirtualcloud.net.

Similar Posts:

Permanent link to this article: http://myvirtualcloud.net/?p=4776

53 comments

Skip to comment form

  1. Doug Youd

    Nice! Thanks for posting, that will be very handy for us. Getting thin print to work had us scratching our heads a little.

  2. Andre Leibovici

    [UPDATE] Please note that this method does not require sysprep to be used. QuickPrep will work without any issues.

  3. Andre Leibovici

    To give Windows 7 look and feel to your Windows Server 2K8 R2 Guest OS refer to my article:

    How to give Win Server 2K8 R2 a Win7 Look & Feel in VMware View
    http://myvirtualcloud.net/?p=2822

  4. Bostjan

    Can anyone confirms that thinprint actually works ?
    In our case we get printers mapped into VDI but printing itself is not working.

  5. Andre Leibovici

    Bostjan, upon deeper tests I noticed I am having the same issues with print re-direction, but I think I know what is happening. I’ll execute some tests and see if I can fix it, and perhaps publish the solution here.

  6. Ben S

    Awesome! Thanks again for this. I’m building the pool now and all went well. Will test later today and next week.

  7. Mega

    Hi Andre,

    Could you say me how you found it was necessary to change those 24 hex-values to make the vmware-svi-ga.exe working with W2K8R2 ?

    Sorry, my English is not excellent.
    Thanks for your help.

  8. Bostjan

    Andre, please let us know if you find out why thinprint is not working.

  9. Mitja

    @Mega, disassembler or debugger can be used. Other solution would be not to patch the .exe, but to use a solution that would convince the .exe that it’s not running on a Windows Server, but rather on a Windows 7 OS.

  10. Bryan Salek

    Awesome! Thanks Andre!

  11. Megatubes

    @Mitja : thanks, it was what I thought but I’m interested to know how Andre could identify that specific values :).

  12. Boomerang

    How about a nice little script for the lazy among us ?

  13. Andre Leibovici

    @Boomerang (David), how about you create one for us and publish it here ;-)

  14. Andre Leibovici

    @Bryan Salek, you are welcome!! I know how important this is for many out there.

  15. Andre Leibovici

    @Megatubes The executable had to be disassembled and tracked for the OS version check error before identifying where to make the changes.

  16. Ronny

    Hi Andre,

    Thx for the post ! The machines provisioned without any error. However I only seem to be able to use RDP as protocol. When I select PCoIP it throws me the error “this desktop does not support the requested display protocol” . I ‘ve first installed the VMtools and then selected the wddm_video driver. Any idea why PCoiP isn’t working ?

    ronny

  17. Andre Leibovici

    @Ronny, did you change the VM OS in vSphere? Also check that your broker and pools are correctly configured. I did not have this error when setting up my environment.

    Andre

  18. Ronny

    @Andre, Thx for the quick response. Bij double checking the entire procedure from top to bottom I discovered that I altered the wrong line (PCoiP 1000) in the conditions section. Therefor I didn’t get the option “PCoiP server” during the installation process. After I corrected the mistake and created a new pool everythings works like a charm. I’d like to thank you for this awsome post!

  19. Andre Leibovici

    @Ronny, you are welcome. I would love you to share with us how you are using the solutions and what the use-case is.

  20. Ronny

    @Andre, I’m setting up a proof of concept for a SaaS provider. Until now they have been using Citrix and MS RDS to provide full desktops to their end users. VDI offers a far better user experience and is more flexible in terms of personalization (eg: installing end user software ,limitations / coexistence with other software, specific settings etc…). Unfortunately due to the MS licensing policy (SPLA) desktop OS’s can only run on dedicated hardware in the datacenter. Xendesktop offers a solution to distribute server OS as a desktop but fails in the auto provisioning etc… Vmware on the other hand despite its superior technology wasn’t able to provide server OS as a desktop.
    Your workaround allows us to use VMware and still being compliant with the MS policy…

    We ‘ve discussed this with VMware and at this point they don’t officially support the method but will provide a supported solution soon.

  21. Marco Cornelissen

    @Andre,I implemented your solution in a testing environment. The creation of the Linked Clone VDI’s works perfectly! Only the assignment of desktops in a Floating environment seems to have a big security problem. When I have 2 VDI’s in a pool and both have an user assigned to them, a third user is not getting a “No resources available” message like it should. Instead, it just takes over one of the occupied VDI’s. Can you verify if you experience the same problem?

  22. Andre Leibovici

    @Marco That actually seems to be a issue not related to the Win2K8 solution. Why do you have users assigned to desktops in a floating pool? Do you know if the same thing happens with Windows 7 or 8 desktops in a floating pool?

  23. Andre Leibovici

    @Ronny, thanks for sharing with us. The inability to auto provision Windows Server Guest OS using XenDesktop is a news to me. For the printing, if they require, look at ThinPrint Professional from Cortado.

  24. Marco Cornelissen

    @andre. We have an environment with about 300 users but only around 15 users need a desktop at one given time. So floating pools seems the best choice. With windows 7 desktops it works without any problems.

  25. ronny

    @Andre: I’ve implemented the Cortado Thin Print engine in het master image and after the recompose printing is no longer an issue. So far the POC looks good !

  26. Andre Leibovici

    @ronny That’s great news. Thanks for sharing with us.

  27. Andre Leibovici

    @Marco, I understand the need for floating pools, but don’t know why you are assigning desktop to users if the desktops are floating and get constantly refreshed.

  28. Marco Cornelissen

    @Andre, Hi Andre, When I talk about assignment I mean automatic (dynamic) assignment by View. So again the scenario:
    I have two available Desktops in a floating pool. User one connects and gets automaticly assigned to the first Desktop. Then users two connects and gets assigned to the second Desktop. Now when the third user connects it is automaticly assigned to the first Desktop that was already beeing used by the first User. It just hijacks the Desktop and sees whatever user one was doing on the Desktop.

    So there is no fixed desktop assignment.

  29. jgrusewski

    Does anybody have done this trick with view 5.2 I cannot do step 12 which is crucial but the patch is for 5.1 doe you also have an updated version ?

  30. ronny

    @jgrusewski : Yse I’vd used 5.2 and that works just fine….

  31. Andre Leibovici

    Has anyone successfully tested smartcards with the proposed solution?

  32. Andre Leibovici

    I would like to update everyone that the same changes made on View 5.1 will also work on Horizon View 5.2. Additionally, you will be able to install the Horizon View Feature Pack to enable HTML5 access and Unity Touch interaction without any additional changes to the installation package.

    regards

  33. Unai

    Hello

    First all, Thanks Andre for the guide, it works great !!

    Does anyone solved the thinprint issue? Or the only way is to use cortado thinprint for example?

    regards

  34. Pete Rod

    Has anyone else had any success on View 5.2? I’ve followed this guide and View still only sees the VM as a 2008R2 (Datacenter). I’ve also checked the Database and do not see the machine showing up in the servers OU – hence I can’t check the PAE setting.

  35. Unai

    Heya Pete

    Have you changed the properties of the virtual machine, setting it as windows 7? (step 17)

  36. Pete Rod

    Ya, I did. I even shutdown the machine and verified again…

  37. Andre Leibovici

    Unai, you will not be able to print because the print driver shipped with View Agent does not support Windows Server GuestOS. You need to download and install Cortado ThinPrint Universal drivers and server.

    -Andre

  38. Rob G

    Can someone provide guidance as to how they got thinprint to actually work. There are tons of thin print products and some do not work with server 2008. What drivers do you need and what is the process? Any help is greatly appreciated. Great article!!

  39. ronny

    @Rob, I’ve used the Cortado thin Print engine with the terminal server option Therefor printing via PCoIP doesn’t work (only via RDS). But at this is already a start.

  40. SP

    I think if a service provider wants to provision Windows Server 2008 R2 as a desktop OS, the template should be configured with desktop experience installed, which requires 3D acceleration be enabled in vSphere, and toward the end the guest OS should be chosen as Windows 7 64-bit.

  41. SP

    I have only VMware-viewagent-x86_64-5.1.0-704644 with me, and View Manager does not allow me to use my Windows Server 2008 R2 as a supported template. Is it necessary to install exactly the same version of view agent to get this work? By the way, downloading view agents is limited at VMware website. Is there anyone who knows other place to get the agents? Any replication would be appreciated.

  42. Andre Leibovici

    SP, the hack has been tested with both View 5.1 and 5.2, working in both scenarios. I see that you say Template. Are you planning to deploy full clones or linked clones? The solution will work with linked clones only.

  43. SP

    Thanks, Andre. After changing to the specific version of view agent, I have solved that problem and successfully deployed windows server 2008 desktops using linked clone. A new problem occurred that I did enable desktop experience in my template and configure 3d support in pool setting, but the traditional theme not Aero would be applied in provisioned desktops. Anyone knows how to set windows server 2008 to automatically apply the Aero theme? Any replication would be appreciated.

  44. Meteron

    Hey Andre, do you have any positive results with Thinprint on Windows Server 2008r2 ?

  45. Andre Leibovici

    Meteron,

    The Thinprint provided with View Agent will not work on Windows Server deployments. You need to contact Cortado to find more about how to enable printing on server desktops.

  46. Meteron

    Thanks for information.

  47. ronin4740 (@ronin4740)

    I’m not having any luck with this. vCenter keeps redetecting the actual guest OS and refuses to take the change to Windows 7 x64 with the server powered off. I’m assuming this is why when I CAN get it to accept the change the clones disappear in the provisioning process.

    Any thoughts on a work around for this?

  48. ronin4740 (@ronin4740)

    Looks like it was an issue with the image. I was able to get this working on a freshly deployed Server 2K8R2 machine. However I’m not having much luck getting persona manager to redirect user folders. Any suggestions?

  49. ronny

    Hi guys, Just got news that VMWare will launch an agent in Q4 which supports server OS. (just thought it would let you know) In the meantime I’ve been able to do most of the things with this temporary solution.

  50. ronin4740 (@ronin4740)

    Ronny – can you point me to the source of the news release? Thanks!

  51. J

    @Andre: I have a need to use RDP Services with my Windows 2008 R2 Server and USB redirection. I am using View 5.3 and it clearly states in VMware Docs that USB redirection is not supported when using Windows Terminal Services/RDP Services. I was wondering if you had any experience or ideas getting around this? 6 users need to login to the same Windows 2008 R2 VM at the same time, so I don’t believe there is any way to do this other than RDP Services. However, they have a USB scanner that must be used with each login. I was hoping to avoid creating multiple VMs (Linked or otherwise) and just use the one VM for the six users. Any ideas?

  52. llalonde

    I can confirm that this procedure works with View-5.3. Haven’t tried ThinPrint… don’t need it. Thank You!

Leave a Reply