7 Reeds
7 Reeds

Reputation: 2539

windows: XP -> current: how to tell if in CONSOLE or RDP session?

I have a messy collection of Windows platforms in various labs. Everything from XP to the latest. I have a simple C#/.NET app that runs at user login and logout. I need to differentiate between true Console logins and RDP sessions. I am using

System.Diagnostics.Process.GetCurrentProcess().SessionId

to get a sessionId but I don't see anything that says "you are on the Console" or "you are in an RDP session". Is there such a thing?

Upvotes: 1

Views: 222

Answers (2)

7 Reeds
7 Reeds

Reputation: 2539

For my needs it turns out that the windows environment variable %sessionname% holds the info I am looking for. In my C# code I can say:

string sessionName = Environment.GetEnvironmentVariable("SESSIONNAME")
                     ?? "CONSOLE";

%sessionname% seems to hold either the string "console" or "rdp-(something)#(number)", ex "rdt-tcp#1234". I don't know the whole range of possible values but it looks like it will work for my needs.

Upvotes: 1

Harry Johnston
Harry Johnston

Reputation: 36318

You can determine which session ID (if any) is currently attached to the physical console by calling the WTSGetActiveConsoleSessionId() function.

Upvotes: 0

Related Questions