Как мне получить текущее имя пользователя, вошедшего в систему в Windows 7 (т.е. пользователя, который физически вошел в консоль, на которой запущена программа, которую я запускаю).
Например, если я вошел в систему как «MainUser» и запустил мое консольное приложение (которое будет отображать имя вошедшего в систему пользователя) как «SubUser», тогда программа вернет только «SubUser» как текущий зарегистрированный пользователь.
Я использовал следующие 2 метода, чтобы получить имя пользователя. И то, и другое не дает мне того, что я хочу.
System.Environment.GetEnvironmentVariable("USERNAME")
System.Security.Principal.WindowsIdentity.GetCurrent().User;
Обратите внимание, что, однако, этот код VBScript возвращает имя пользователя, вошедшего в систему, независимо от учетной записи, из которой запускается этот скрипт:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set compsys_arr = objWMIService.ExecQuery _
("Select * from Win32_ComputerSystem")
For Each sys in compsys_arr
Wscript.Echo "username: " & sys.UserName
Next
Каким-либо образом это возможно в C #?