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.
- 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.
- Go to %temp% folder, typing %temp% at the Run prompt.
- Find the folder containing the unpacked installation files and copy them to a temporary folder on your desktop.
- Using the Orca utility open ‘VMware View Agent64.msi’ file existing in the temp folder.
- Navigate to ‘Condition’ table.
- 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.
- In ControlEvent table set:
- Dialog CustomSetup, argument ConnectionServer, set condition to 0
- Dialog CustomSetup, argument ReadyToInstall, set condition to 1
- In InstallExecuteSequence Table set:
- Action VM_AddLDAPMachineEntry_SD.2EDC2186_29E9_4662_86CD_26051967D0CA, set condition to 0
- Action VM_AddLDAPMachineEntry.2EDC2186_29E9_4662_86CD_26051967D0CA, set condition to 0
- In Registry Table set:
- Save the VMware View Agent64.msi and copy all the files to a temporary folder in your Windows 2K8 VM.
- Execute ‘VMware View Agent64.msi’ and go through the install normally.
- 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.
- 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.
- 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.
- 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.
- Close the command prompt window shutdown the server.
- 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.
- 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:
This article was first published by Andre Leibovici (@andreleibovici) at myvirtualcloud.net.