Connect with me!

Have a question? Want to hire me? Reach out and Connect!
I'm available for remote and onsite consulting!
To live chat with me, Click Here!
VMware Horizon View

Install VMware Horizon Agent on Physical PC

One really cool feature that was released in VMware Horizon View 7.7 (and Horizon 8), is the ability to install the Horizon Agent on to a Physical PC or Physical Workstation and use the Blast Extreme protocol. It even supports 3D Acceleration via a GPU and the direct-connect plugin (so you don’t need to have/use a View Connection Server)!

Update July 20, 2022: With the release of Horizon 8 2206, you can now install the Horizon agent on Windows 10 Pro, and Edu editions. Previous versions of Horizon required Windows 10 Enterprise.

As a system admin, I see value in having some Physical PCs managed by the View connection server. Also, if you have the licensing, this will allow you to set this up as a remote access solution for your business and employees.

I’ll be detailing some information about doing this, what’s required, what works, and what doesn’t below…

The details…

From the “What’s new in Horizon 7.7” doc at https://blogs.vmware.com/euc/2018/12/whats-new-horizon-7-7.html

You can now use the Blast Extreme display protocol to access physical PCs and workstations. Some limitations apply.

Additional information from the “Horizon 7.7 Release Notes” at https://docs.vmware.com/en/VMware-Horizon-7/7.7/rn/horizon-77-view-release-notes.html

Physical PCs and workstations with Windows 10 1803 Enterprise or higher can be brokered through Horizon 7 via Blast Extreme protocol.

Requirements

So here’s what’s required to get going:

  • Windows 10 Enterprise (for Horizon versions before Horizon 8 2206)
  • Windows 10 Pro or Edu (for Horizon 8 2206 and later)
  • Physical PC or Workstation
  • VMware Horizon Licensing
  • VMware Horizon 7.7 or higher (and Horizon 8) Connection Server
  • VMware Horizon 7.7 or higher (and Horizon 8) Agent on Physical PC/Workstation
  • Manual Desktop Pool (Manual is required for Physical PCs to be added)

What Works

  • Blast Extreme
  • 3D Acceleration (via GPU with drivers)
  • 3D Acceleration with Consumer GPUs
  • Multiple Displays
  • Multiple GPUs
  • VMware View Agent Direct-Connection Plug-In

What Doesn’t Work

  • GPU Hardware h.264 encoding on consumer GPUs (h.264 encoding is still handled by the CPU)
  • GPU Hardware h.264/h.265 offload may work in later versions (I still need to test this)

Thoughts

I’ve been really enjoying this feature. Not only have I moved my desktop in to my server room and started remoting in using Blast, but I can think of many use cases for this (machines shops, sharing software licenses, remote access, etc.).

I’ve had numerous discussions with customers of mine who also say they see tremendous value in this after I brought it to their attention. I’ll update this post later on once I hear back about how some of my customers have deployed it.

Update – March 14th 2020 – I’ve been using this on 3 different systems since I wrote this article and love this feature!

3D Acceleration

One thing that is really cool, is the fact that 3D acceleration is enabled and working if the computer has a GPU installed (along with drivers). And no, you don’t need a fancy enterprise GPU. In my setup I’m running a GeForce 550 GTX TI, and a GeForce 640.

Horizon 3D Acceleration Enabled via dxdiag

While 3D acceleration is working, I have to note that the h.264 encoding for the Blast Extreme session is still being handled by the CPU. So while you are getting some great 3D accelerated graphics, depending on your CPU and screen resolution, you may be noticing some choppiness. If you have a higher end CPU, you should be able to get some pretty high resolutions. I’m currently running 2 displays at 1920×1080 on an extremely old Core 2 Quad processor.

H.264 encoding

I spent some time trying to enable the hardware h.264 encoder on the GPUs. Even when using the “NvFBCEnable.exe” (located in C:\Program Files\VMware\VMware Blast\) application to enable hardware encoding, I still notice that the encoding is being done on the CPU. I’m REALLY hoping they change this in future releases.

Hacks?

Another concept that this opens the door for is consumer GPUs providing 3D acceleration without all the driver issues. Technically you could use the CPU settings (to hide the fact the VM is being virtualized), and then install the Horizon Agent as a physical PC (even though it’s being virtualized). This should allow you to use the GPU that you’re passing through, but you still won’t get h.264 encoding on the GPU. This should stop the pesky black screen issue that’s normally seen when using this work around.

Bugs

When upgrading to Horizon View 8 or higher, as part of the process to upgrade the agent on the physical machine, you may notice this functionality stops working. To resolve this, simply uninstall the agent and then re-install it.

Also, on a final note… I did find a bug where if any of the physical PCs are powered down or unavailable on the network, any logins from users entitled to that pool will time out and not work. When this issue occurs, a WoL (Wake on LAN) packet is sent to the desktop during login, and the login will freeze until the physical PC becomes available. This occurs during the login phase, and will happen even if you don’t plan on using that pool. More information can be found here:
https://www.stephenwagner.com/2019/03/19/vmware-horizon-view-stuck-authenticating-logging-in/

More Information

Since the date of this post, VMware Tech Zone released a useful post outlining details on Using Horizon to Access Physical Windows Machines. I highly recommend you check it out!

Stephen Wagner

Stephen Wagner is President of Digitally Accurate Inc., an IT Consulting, IT Services and IT Solutions company. Stephen Wagner is also a VMware vExpert, NVIDIA NGCA Advisor, and HPE Influencer, and also specializes in a number of technologies including Virtualization and VDI.

View Comments

  • Thanks for posting this! I'm trying to get this going on Horizon 7.9 fronted by UAG 3.6 and keep running into the same error either thru HTML or Horizon Client. I get this when trying to connect:

    "Unable to set up the desktop session for the display protocol. Please contact your system administrator."

    Using Win 10 Enterprise 1809, UAG 3.6 Horizon 7.9, Horizon Agent 7.9, and Client 7.9. I've tried switching the client between PCOIP and Blast, same effect. I'm wondering what I may be missing.

    • Is this only on the physical machines with the agent installed? Or all View Agents?

  • So this is only on the physical machine, I only have 1 at this time setup. I have 2 pools, one for the Physical machines which has to be a manual pool, and another manual pool for actual VM's that have the agent installed that I use. The other Manual pool with just VM's in it, works fine.

    • And is the DNS fully working (both forward and reverse) and able to do both lookups to the VM running the agent?

  • Yes, DNS is working fully both forward and reverse lookups to/from the CS and the Agent. I opened a case with VMware Support on it as well to see what they come up with.

  • I would be interested to see what you come up with. I'm having the same issue with my physical machine setup. Virtual machines allow the protocol with no problem, but the physical machines will not make the connection. I can connect to the physical machines over RDP though.

    • Hi Sonny,

      First make sure that the firewall isn't blocking the connections. Also make sure that forward and reverse DNS entries exist for the physical host.

      Additionally, for the sake of BLAST, try deleting the BLAST certificates from the guest VM (the VDI guest, NOT the server).

      You can troubleshoot the connection from the agent logs on the guest VM.

      Cheers,
      Stephen

  • Reconnecting to a manual desktop gives the error The display protocol for this desktop is currently not available. Please contact your system administrator." What can we check?

  • Hi, i've tried thsi with version 7.5 and for the most part it works pretty good but i did find that the physical PCs screeen is available for anyone to see when it is being remotely controlled in the view session. Did you see this in the version you're using? is there any known fix. Thanks.

    • I've tested this, a few times in the last 4 minor versions and haven't seen the same. I'm using Windows 10 Enterprise, but I may have GPOs configured to not allow the screen to be shown.

  • Thanks for the reply. maybe it is a version thing as i am on 7.5.3. RDP sessions automatically give a black screen when the system is being remote controlled. The view sessions PCoIP or Blast both keep the screen open to anyone. I'll keep hunting, thanks.

  • Did you have to do anything special to get 3D acceleration working?

    I have setup a physical desktop with a Nvidia 2080 and installed the Horizon agent v7.11. Using a connection server also at 7.11 and connecting with Blast using the latest view client it is still using the VMware Horizon Indirect Display Driver and no 3D acceleration.

    Any suggestions or thoughts? Thanks

    • Hey Barton,

      If you run "dxdiag" like I did in the post, is it showing the same things as mine as far as the enabled and disabled items go?

      Also, VMware Blast Extreme only supports 3D acceleration on up to two displays with a maximum resolution of 1920x1200, or one display with a resolution of 3840x2160. It may be different on physical PCs, but I'm sure the spec applies to that as well.

      Cheers,
      Stephen

  • Thanks for the response. When I run dxdiag I only have one display tab (I only have 1 monitor(1280x1024) on the system the client is running on) and that lists the "VMware Horizon Indirect Display Driver" rather than the Nvidia card. The output on mine is the same under "DirectX Features" as yours however 3D performance is no better over Blast than using RDP.

    Any chance you've tried any OpenGL things successfully via Blast?

    Thanks

    • Hmm, interesting...

      What Nvidia driver are you using?

      I have two displays on my dxdiag, because the system has two graphics cards (was only using one).

      Maybe try using the device manager to disable the indirect video card and restart (keep me in mind you'll lose access once disabled). And see if it works on reboot. There's also a chance things may have changed in the minor version updates.

      Stephen

  • 26.21.14.3200

    Unfortunately if I disable the indirect video card in device manager I just get a black screen when trying to reconnect after the reboot. I then need to reinstall the agent and re-add the machine to the pool to get it working again.

    I guess I may try using the older version and see if that is any different. I appreciate the input.

    • PS. One other thing too, is that instead of the video card doing h.264 encoding for BLAST, it's done by the CPU. Is the computer's CPU beefy enough to encode the video stream? Have you checked task manager whenever doing anything graphically intensive?

  • It's an i7-8700 so should be up to the task. Are you able to run Blender or other OpenGL software when connected?

  • I don't suppose you would be able to download the latest version of Blender and see if you could run it while connected via Blast in your setup? There is a portable version available so no install needed, just unzip and run and see if it will run or complain about OpenGL. I want to know if I'm wasting my time trying to get this to work or if it might still be possible.

    Thanks!

    • Hi Barton,

      I just tried it and received an error regarding the lack of a specific version of OpenGL.

      By any chance do you have any Quadro video cards you could test with? I'm wondering if a Quadro card with Quadro drivers may work.

      Stephen

  • I don't unfortuantely. I have a bunch of GTX and RTX cards but no Quadro. Thanks for trying it. I think at this point it's not going to work out for me.

    For what it's worth if this helps anyone in the future, I was able to get the physical cards and drivers to show up in dxdiag by installing the agent with the command line switch INSTALL_VDISPLAY_DRIVER=0.

  • https://techzone.vmware.com/resource/using-horizon-7-access-physical-windows-machines#_Toc35336906

    It has been reported that in some environments, physical desktop pools with floating assignment has resulted in two users being allocated the same machine which results in the first user getting disconnected. If this behavior is observed, apply the following workaround. On the physical PCs, set the following registry value:

    HKLM\System\CurrentControlSet\Control\Terminal server\Winstations\RDP-Tcp\
    MaxInstanceCount=1

    Using Horizon 7 to Access Physical Windows Machines

    We actually added this registry entry too.

    HKLM\System\CurrentControlSet\Control\Terminal server\Winstations\VMware-RDS\
    MaxInstanceCount=1

  • Thank you for posting this. We used this to get our 100 AutoCAD users working from home and it's really been impressive. We do have a pretty big issue though. A lot of users are reporting the black screen bug after working with it for a while. All the desktops are Win10 enterprise 1909. they all have AMD Radeon 7100 cards in them. Using the 7.10 agent and 5.3 client. blast protocol is allowed through our firewall. We did have to apply a regedit initially to make it work.

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\VMware-RDS\fenablewinstation=0

    It's so strange because it works great intermittently but seemingly at random it just throws the black screen up and we have to reboot the desktop 1 or 2 times to get it back. Have you seen this before? Any idea's what the issue might be?

    • Hi Jimmy,

      Glad to hear the post helps!

      Out of curiosity, do you have the Horizon GPOs deployed? Have you configured any settings with those GPOs before this?

      Does this happen with PCoIP as well?

      Also, have you tried different video card drivers?

      And finally, what resolutions are you trying to push? I'm wondering if maybe you're maxing the resolution out.

      Cheers,
      Stephen

Share
Published by

Recent Posts

How to properly decommission a VMware ESXi Host

While most of us frequently deploy new ESXi hosts, a question and task not oftenly discussed is how to properly decommission a VMware ESXi host. Some might be surprised to… Read More

3 months ago

Disable the VMware Horizon Session Bar

This guide will outline the instructions to Disable the VMware Horizon Session Bar. These instructions can be used to disable the Horizon Session Bar (also known as the Horizon Client… Read More

4 months ago

vGPU Enabled VM DRS Evacuation during Maintenance Mode

Normally, any VMs that are NVIDIA vGPU enabled have to be manually migrated with manual vMotion if a host is placed in to maintenance mode, to evacuate the host. While… Read More

4 months ago

GPU issues with the VMware Horizon Indirect Display Driver

You may experience GPU issues with the VMware Horizon Indirect Display Driver in your environment when using 3rd party applications which incorrectly utilize the incorrect display adapter. This results with… Read More

4 months ago

Synology DS923+ VMware vSphere Use case and Configuration

Today we're going to cover a powerful little NAS being used with VMware; the Synology DS923+ VMware vSphere Use case and Configuration. This little (but powerful) NAS is perfect for… Read More

4 months ago

How to Install the vSphere vCenter Root Certificate

Today we'll go over how to install the vSphere vCenter Root Certificate on your client system. Certificates are designed to verify the identity of the systems, software, and/or resources we… Read More

5 months ago
Powered and Hosted by Digitally Accurate Inc. - Calgary IT Services, Solutions, and Managed Services