如何获取当前在Windows 7中登录的用户名(即身体登录到正在运行的程序所在的控制台的用户)。获取C#中登录的用户名
例如,如果我以“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#中?
检查http://forums.whirlpool.net.au/archive/793434。我想你可以改变代码,使其完全符合你的VBScript。 – weismat 2010-10-28 06:24:19
VBScript不适用于我(运行在Win2003服务器上)。另外,如果用户选择在不同的用户帐户下运行你的程序,*为什么*你想忽略它? – 2010-10-28 06:36:36
@Damien,我需要根据登录的用户在程序中做出决定,那就是为什么! – Santhosh 2010-10-28 06:39:59