BgInfo is a free tool from Microsoft that automatically generates desktop backgrounds that include important information about the system like its IP addresses, host name, boot time, and so on.
This article explains how I am using BgInfo in a virtual desktop environment (VDI) and how it helps our hospital’s help desk support end users. We use VMware View 4.5 and BgInfo v4.16. These same concepts should work with other VDI solutions like Citrix XenDesktop. At the bottom of this article I’ve provided a BGInfo Template you may download that contains all of the VMware View registry variables, much the same way Citrix provides a BgInfo template for its Citrix XenDesktop customers.
The primary purposes of using BgInfo in a VMware View VDI desktop pool is to provide the end user an easy way to:
- Identify who is logged in
- Be able to provide IT Support their virtual IP address for Windows Remote Assistance connections
- Be able to provide IT Support their physical WYSE IP address for VNC Shadowing connections
- Warn users of linked-clone desktop pools that their session will automatically refresh after a period of inactivity
Secondary purposes of using BgIfno in a VMware View VDI desktop pool is to:
- Capture user/desktop variables in a separate database (Microsoft Access or Microsoft SQL)
- Easily deploy different desktop backgrounds to different desktop pools to easily distinguish pool and class of user (e.g. Help desk: “What color is your desktop?” User: “Blue”. Help desk quickly knows the user is using a non-persistent desktop pool, because the green desktops are persistent and are user assigned.)
In this example, a user’s desktop shows who is logged in (large text) and some vital information about their virtual and physical desktops.
VMware View Client Variables
The VMware View Client captures information from both the physical desktop (a thin client or traditional PC) and virtual desktop and stores that information in the virtual desktop’s registry. You’ll find the Name and Data pairs here: HKEY_CURRENT_USER\Volatile Environment. Here are all of the available variables offered by VMware View 4.5:
In addtion to the helpful variables BgInfo includes by default, you are able to add Custom environment variables. I did so by clicking on Custom. Within Define New Field, I selected Registry Value and pasted in the path for each of the registry values provided by VMware View. The BgInfo template that I created contains all of these variables for you and may be downloaded at the end of this article.
When done, you’ll end up with a library of newly created User Defined Fields. Naturally, you may add more fields from many different sources if you like, but that’s beyond the scope of this article:
Configure BgInfo Background
To provide a uniform and consistent background for all images in your desktop pool, select Use these settings and then proceed to select your colors. You may optionally use a .BMP image, but solid background are a best practice to conserve resources.
Configure BgInfo Position
Next, determine where you would like this information aligned. I prefer the top-right corner because the large user name appears directly below the VMware View shade. If a second user walks up to a PC that has an open VMware View session (a no no, but it happens), the second user would close that session by clicking on the X right above the first user’s username.
Configure BgInfo Desktops
These settings define how BgInfo will update the wallpaper on each desktop.
Configure BgInfo Output Bitmap
These settings are important from a read/write and permission standpoint. I’ve had the best results and fewest errors by selecting “User’s temporary files directory.” You could optionally write all of the desktop .BMP files to a shared network resource if you wish to retain and backup these images. But I think the Database option is a better and more useful choice.
Configure BgInfo Database
One neat thing about BgInfo is that you may optionally capture and record all of the Fields (not just the information you choose to display on a user’s desktop) to a third-party database (either Microsoft Access or Microsoft SQL). This feature can provide you a helpful log of all user activity and the settings pertaining to each session at a given point in time.
Create a Logon Script
I created a .CMD batch file that remotely launches BgInfo and the custom .BGI configuration template I created. I’ve added some variables to make the process silent and transparent to the user. Place this file in your NETLOGON folder.
REM Script written by Jason Pearce 2011 Jan
REM Purpose is to run BGinfo from a network resource for VDI clients
REM A Group Policy will be used to apply this script to specific users and computers
%logonserver%\netlogon\bginfo\bginfo.exe %logonserver%\netlogon\bginfo\CustomBginfoVDIdefault.bgi /Timer:0 /NoLicPrompt /silent
Create a Group Policy
I then created a Group Policy that I assign to the Active Directory OU for each VMware View desktop pool. This makes it easy for me to have a variety of BgInfo settings and apply them to specific pools.
Download BgInfo Template for VMware View
That’s it. If you have any other creative ways that you use BgInfo in your VDI environment, I’d love to hear about them below in my comments. Here is the BgInfo Template that I’ve already created for you that contains all of the user Defined Fields I mentioned above.
Note (2012 Jan 23)
I expanded on this article by writing “Updating BgInfo when VMware View desktop changes locations.”