Solved

Vmware View Location Awareness

Posted on 2013-06-13
5
1,042 Views
Last Modified: 2013-06-19
Hey Experts,

We are currently using Vmware VDI View with thin clients and the View client but are having difficulties with the Location Awareness piece. Currently we have a View Security server in a DMZ facing the Internet to allow users to connect with the View client and access their desktop from off-site. The same connection server is also available from the inside. The View Security server does not log source IP and username for connections coming in from the outside, which we see as a security flaw. However, the source IP and username are contained within the registry keys in Windows at this location:

HKEY_CURRENT_USER\Volatile Environment.

While referencing this documentation I'm attempting to take the values of these registry keys and output to a text file.

http://www.vmware.com/files/pdf/VMware-View-Location-Awareness-WP-EN.pdf

I have the CommandsToRunOnConnect GPO applied to the VMs with a batch file and VB script in an attempt to grab the values in the registry and either dump to a text file or display on the screen each time a user connects to their VDI.

The problem is that neither one of them works correctly. I know that the scripts are running because I have set the batch file to timeout for 20 seconds and can see it counting down when I reconnect to the desktop. The batch file will not write the registry values to the text file though, and the VBscript will not display on the screen. Both work when run manually.

Batch script
@echo off
timeout 20
echo %computername%/%username%  %time% %date% >>c:\vdi\vmware.txt
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>>c:\vdi\vmware.txt
reg query "HKEY_CURRENT_USER\Volatile Environment" /v "ViewClient_LoggedOn_Username">>c:\vdi\vmware.txt
reg query "HKEY_CURRENT_USER\Volatile Environment" /v "ViewClient_IP_Address">>c:\vdi\vmware.txt
echo.>>c:\vdi\vmware.txt

VB SCript
Const HKEY_CURRENT_USER = &H80000001
Set wmiLocator=CreateObject("WbemScripting.SWbemLocator")
Set wmiNameSpace = wmiLocator.ConnectServer(".", "root\default")
Set objRegistry = wmiNameSpace.Get("StdRegProv")
sPath = "Volatile Environment"
lRC = objRegistry.GetStringValue(HKEY_CURRENT_USER, sPath, "ViewClien_Machine_Name", vMachine)
lRC = objRegistry.GetStringValue(HKEY_CURRENT_USER, sPath, "ViewClien_IP_Address", vIP)
lRC = objRegistry.GetStringValue(HKEY_CURRENT_USER, sPath, "ViewClien_MAC_Address", vMAC)
msgbox "The Remote Device Name is " & vMachine & " @ " & vIP & " (" & vMAC & ") "
0
Comment
Question by:smartytech
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 28

Expert Comment

by:asavener
ID: 39248434
What happens if you just run the batch script line items manually?

...are you sure that HKCU is the correct hive for this?
0
 
LVL 28

Accepted Solution

by:
asavener earned 500 total points
ID: 39248441
0
 

Author Comment

by:smartytech
ID: 39248839
Thanks for the response asavener. Yes, the commands work when run manually. HKCU is the correct location for that information according to Vmware documentation. The KB article you pointed me to looked promising but it didn't change anything. That article also states the problem was fixed in 5.1 and we are currently running View 5.2.

Any other thoughts?
0
 

Assisted Solution

by:smartytech
smartytech earned 0 total points
ID: 39248992
*Update*

I figured out another way to do it that worked. I changed the script to the following since the values of the Volatile Environment keys are written to the environment variables, such as %ViewClient_IP_Address%.

@echo off
timeout 10
echo %computername%/%username%  %time% %date% >>c:\vdi\vmware.txt
echo %ViewClient_IP_Address% >>c:\vdi\vmware.txt
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~>>c:\vdi\vmware.txt

The KB article you linked led me down this path. Thanks again!
0
 

Author Closing Comment

by:smartytech
ID: 39258799
Using environment variables in the scripts is what ultimately resolved this.
0

Featured Post

Has Powershell sent you back into the Stone Age?

If managing Active Directory using Windows Powershell® is making you feel like you stepped back in time, you are not alone.  For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When converting a physical machine to a virtual machine using VMware vCenter Converter Standalone or vCenter Converter Enterprise, if an adapter type is not selected during the initial customization the resulting virtual machine may contain an IDE d…
A procedure for exporting installed hotfix details of remote computers using powershell
This tutorial will show how to configure a new Backup Exec 2012 server and move an existing database to that server with the use of the BEUtility. Install Backup Exec 2012 on the new server and apply all of the latest hotfixes and service packs. The…
This Micro Tutorial steps you through the configuration steps to configure your ESXi host Management Network settings and test the management network, ensure the host is recognized by the DNS Server, configure a new password, and the troubleshooting…

738 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question