Citrix VMware Horizon

Introducing BgAssist

VDI is a tricky beast to tame with so many factors involved in deploying a successful service. More so, creating a successful service with an outstanding end-user experience is even more difficult. In a bureaucratic workplace with resource, time, and talent constraints, I often feel that the needs of a single user are secondary or forgotten about by the nature of the process. It’s easier to make broad strokes for the largest user communities over individuals with diverse and specific needs.

With these challenges in mind, I’ve created BgAssist as an open-source project to help VDI administrators create better end-user experiences. Even if not groundbreaking or revolutionary, it’s a step forward in pushing the capabilities of virtual desktop service delivery.

BgAssist (complementing the renowned BgInfo) is a small footprint executable to trigger desktop background refreshes in VDI environments and improve user experience.

The application addresses two challenges.

Desktop backgrounds don’t play well with windowed, non-standard screen ratio VDI clients. A fixed ratio background image that is anything other than a solid color distorts the moment the client breaks the ratio or changes screen resolution.

Here’s an example of BgAssist addressing this challenge:

The VDI session screen ratio and resolution can be dynamic based on users’ needs while maintaining a seamless experience and corporate branding guidelines.

Corporate branding and marketing are difficult to balance with accessibility. Inside the walled garden of corporate enterprise, users end up lacking choice in desktop background options, often disregarding the accessibility needs of individual users.

Here’s an example of BgAssist addressing this challenge:

Corporate branding guidelines are maintained while providing the user with choices to suit their preference, desired functionality, or needs.

As not to reinvent industry-accepted tools, BgAssist expands on the use of BgInfo to generate desktop background images. If you’ve already deployed BgInfo, BgAssist is a natural fit to further augment its use by monitoring the session and triggering refreshes at the appropriate time.

While everything comes at a cost, BgAssist addresses these challenges utilizing nearly zero CPU and ~12 MB of RAM per session.

Creating an open-source project to give back to the community that’s given me so much over the course for my career has always a goal of mine. While in its infancy and I’m certain that there are a few bugs, I’m incredibly proud to give back: BgAssist. Head over to the GitHub project page to dive into the technical details.

Home Lab VMware Horizon

Horizon View Administrator Load Balancing

After setting up load balanced Horizon 7 Connection servers, I was immediately stonewalled at the View Administrator login screen (https://connection-server/admin). Nothing but a blank modal window with the date and time – zero error details.

Thinking it was possibly a quirk with the Flash interface, I tried the new Horizon 7 HTML5 console (https://connection-server/newadmin). To my surprise, it threw an equally as helpful error: Login failed due to: [Not found]

The HTML5 login failure only happened in Chrome (v81). Firefox (v75) worked. Edge (v44) worked. Internet Explorer 11 worked.

A little bit of research revealed that for security purposes, the Horizon 7 View Administration console checks the origin URL of the web request and rejects it if doesn’t match:




The later is necessary for environments configured with Unified Access Gateways (UAGs). While the cause of the issue isn’t immediately obvious, the cause makes sense.

The fix is straight forward; tested on v7.8. Perform the following steps on each load balanced Connection Server:

  1. Edit: C:\Program Files\VMware\VMware View\Server\sslgateway\conf\
  2. Add the line: checkOrigin=false
  3. Save, close, and restart the VMware Horizon View Connection Server service.

Official VMware KB article: