Solved

1 User Logging into Multiple PC terminal service session:  %clientname% environment variable doesn't update:  why?

Posted on 2007-11-20
5
1,524 Views
Last Modified: 2013-11-21
OS:  Windows 2003 Server SP2 (with terminal services enabled).  
We are keying off the %clientname% environment variable for our application to work under terminal services.
The problem is this:
A user logs into a terminal service session from PC a.  Then the user doesn't log out of the terminal server session but creates another terminal service session from PC b.  So now the user is logged into the same terminal server 2x but with different session id's.  The problem is that the %clientname% variable doesn't update when the user logs in from PC b.  The %clientname% is still reflecting that of PC a.  

Is there a way to force this variable to update when the user logs into PC b?  Better yet is there a better variable that is unique and static to each PC?
0
Comment
Question by:carswelldp
  • 3
  • 2
5 Comments
 
LVL 31

Expert Comment

by:Cláudio Rodrigues
ID: 20320160
Why do not you combine both CLIENTNAME and SESSION ID on your application? This will be definitely unique.

Claudio Rodrigues
Microsoft MVP
Windows Server - Terminal Services
0
 
LVL 1

Author Comment

by:carswelldp
ID: 20320411
Yes unique but not static.  The session id can change.
Our program has been coded to look into a folder c:\tsclient\%CLIENTNAME%\... for its configuration settings.  Each client machine has specific settings relating to it.  So the configuration cannot change and must remain static.


0
 
LVL 31

Expert Comment

by:Cláudio Rodrigues
ID: 20321141
Why you do not restrict the user to one single session? Launch TSCC.MSC and you will see the setting right there.

Claudio Rodrigues
Microsoft MVP
Windows Server - Terminal Services
0
 
LVL 1

Author Comment

by:carswelldp
ID: 20321336
I would like to do that very much.  However, the needs of our client dictate otherwise.  In this circumstance the user (according to the client) has to be logged into 2 sessions with the same userid.  I am trying to find a way around this by selecting a unique environment variable to the client terminal server session.  CLIENTNAME appeared to work wonderfully till this issue with the CLIENTNAME not being updated upon login to a different user session  while connected to the other.  I realize this may be a limitation of terminal services and in our extensive research this seems to be the case.  
0
 
LVL 31

Accepted Solution

by:
Cláudio Rodrigues earned 500 total points
ID: 20321402
The WTSAPI returns both CLIENTNAME and the client IP address. If you use the API instead of relying on the environment variables, it will work indeed.
More information here:
http://msdn2.microsoft.com/en-us/library/aa383468.aspx

In your case you will probably be using the WTSQuerySessionInformation function.

Claudio Rodrigues
Microsoft MVP
Windows Server - Terminal Services
0

Featured Post

Active Directory Webinar

We all know we need to protect and secure our privileges, but where to start? Join Experts Exchange and ManageEngine on Tuesday, April 11, 2017 10:00 AM PDT to learn how to track and secure privileged users in Active Directory.

Question has a verified solution.

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

Suggested Solutions

I've always wanted to allow a user to have a printer no matter where they login. The steps below will show you how to achieve just that. In this Article I'll show how to deploy printers automatically with group policy and then using security fil…
Learn about cloud computing and its benefits for small business owners.

830 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