Solved

Vmware View Location Awareness

Posted on 2013-06-13
5
1,052 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

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Giving access to ESXi shell console is always an issue for IT departments to other Teams, or Projects. We need to find a way so that teams can use ESXTOP for their POCs, or tests without giving them the access to ESXi host shell console with a root …
After seeing many questions for JRNL_WRAP_ERROR for replication failure, I thought it would be useful to write this article.
This Micro Tutorial walks you through using a remote console to access a server and install ESXi 5.1. This example is showing remote access and installation using a Dell server. The hypervisor is the very first component of your virtual infrastructu…
This video shows you how to use a vSphere client to connect to your ESX host as the root user. Demonstrates the basic connection of bypassing certification set up. Demonstrates how to access the traditional view to begin managing your virtual mac…
Suggested Courses

617 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