• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1078
  • Last Modified:

Vmware View Location Awareness

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
smartytech
Asked:
smartytech
  • 3
  • 2
2 Solutions
 
asavenerCommented:
What happens if you just run the batch script line items manually?

...are you sure that HKCU is the correct hive for this?
0
 
asavenerCommented:
0
 
smartytechAuthor Commented:
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
 
smartytechAuthor Commented:
*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
 
smartytechAuthor Commented:
Using environment variables in the scripts is what ultimately resolved this.
0

Featured Post

Making Bulk Changes to Active Directory

Watch this video to see how easy it is to make mass changes to Active Directory from an external text file without using complicated scripts.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now