gpt4 book ai didi

c# - C#获取登录用户名

转载 作者:太空狗 更新时间:2023-10-29 17:42:37 26 4
gpt4 key购买 nike

我如何在 Windows 7 中获取当前登录的用户名(即物理登录到我正在运行的程序正在运行的控制台的用户)。

例如,如果我以“MainUser”身份登录并以“SubUser”身份运行我的控制台应用程序(将显示登录用户名),则程序仅返回“SubUser”作为当前登录用户。

我使用了以下两种技术来获取用户名。两者都没有给我想要的东西。

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# 中有什么可能吗?

最佳答案

我认为仅将 WMI 调用转换为 c# 对我来说就可以了。

            ConnectionOptions oConn = new ConnectionOptions();
System.Management.ManagementScope oMs = new System.Management.ManagementScope("\\\\localhost", oConn);


System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery("select * from Win32_ComputerSystem");
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs, oQuery);
ManagementObjectCollection oReturnCollection = oSearcher.Get();

foreach (ManagementObject oReturn in oReturnCollection) {
Console.WriteLine(oReturn["UserName"].ToString().ToLower());
}

关于c# - C#获取登录用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4040290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com