Get hostname of a RDP client computer

2

1

I have a question which I'm sure has a simple solution, but it keeps eluding me.

There's a server in the picture that is used by several people.
All of them use the same account to log in.
The only way to differentiate sessions would be by hostname or IP.

So - How to see, on the remote computer, a hostname of the client connected?

For example, I RDP in to the server 256.12.13.1 from my IP 256.12.13.7.
Is there a command I could run on the server in that remote session that will output 256.12.13.7?

I ask because it would be good if that command would output 256.12.13.9 when person connects from that other IP.

So I can put it in startup and whenever someone connects script like this would run:

gethostname >> rdplog.txt<br>
date /t >> rdplog.txt <br>
time /t >> rdplog.txt

So this can basically equal to a very simple login log.

extremko

Posted 2012-02-23T15:09:58.527

Reputation: 428

I'm looking into powershell now. I guess that's my only option left. – extremko – 2012-02-24T08:41:47.107

2Obviously, few people can dictate how a business uses IT resources, but may I suggest that multiple people using the same login is extremely poor security practice? If you are in the position to improve this system, I would recommend it. – Myrddin Emrys – 2012-03-15T20:45:04.043

@MyrddinEmrys, You are absolutely correct. But no, I can not make the change in the system as it is now, I did try already :) However, it's a LAN environment and people do not store much important data so it is okay. The only thing I am concerned about is data corruption, but this is where backup kicks in ;) Thank you for your thoughts though, much appreciated! – extremko – 2012-03-16T09:19:05.457

Answers

6

You could write a batch script like:

netstat -na | find "3389" | find "ESTABLISHED" >> C:\path_to_rdplog.txt
date /T >> C:\path_to_rdplog.txt
time /T >> C:\path_to_rdplog.txt
echo. >> C:\path_to_rdplog.txt
echo ----------- >> C:\path_to_rdplog.txt
echo. >> C:\path_to_rdplog.txt

You just have to make sure that the person who's logging in has write permissions to C:\path_to_rdplog.txt

matrixx333

Posted 2012-02-23T15:09:58.527

Reputation: 161

Though I suspect this wouldn’t give the right answer when multiple clients are connected and you want to discover the client connected to the currently active session. – binki – 2016-03-02T21:31:25.097

Exactly what I needed! How could I have made such an oversight? netstat! Thank you matrixx333, you just made my day. Of course, I edited the script a bit more to suit my needs better, but you made a hell of a job sir. Thank you very much! :-) – extremko – 2012-03-16T09:23:05.140

1Glad I could help you out @extremko! – matrixx333 – 2012-03-16T09:37:23.123

1

A very old thread but anyway. We used to check an environment variable CLIENTNAME that is set in the RDP session. We had an older application that could not easily use windows API's or Powershell and checked this environment variable. This variable holds the hostname of the client machine making the RDP connection.

Johan Bennink

Posted 2012-02-23T15:09:58.527

Reputation: 11

I appreciate the update, even with the thread being old. Clientname variable would certainly resolve my issue back then! Thanks for the update! – extremko – 2017-10-17T17:11:33.750

1

Microsoft MVP Shay Levy made a PSTerminalServices PowerShell module that has Terminal Services cmdlets.

It needs to be installed, it is not there by default.

I have not used it yet, I just found it.

TheSavo

Posted 2012-02-23T15:09:58.527

Reputation: 364

Thanks for the suggestion. Haven't tried it, but will :) – extremko – 2012-03-16T09:21:18.933