如何獲取當前在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