我正在尝试获取“当前活动用户帐户名”(Windows 用户)。
为此,我尝试了下面提到的代码,并获得了“当前活动用户帐户名称”,但此代码首先获取所有用户列表,然后过滤(获取)“当前活动用户名”。
现在,我正在尝试获取“当前活动用户帐户名称”(Windows 用户)但没有 for
循环,并且我尝试在 Microsoft 开发人员文档中获取帮助(研究)但我找不到有用的资源。
SelectQuery userListQuery = new SelectQuery("Win32_UserAccount");
ManagementObjectSearcher userSearcher = new ManagementObjectSearcher(userListQuery);
foreach (ManagementObject envVar in userSearcher.Get())
{
// get sid string from username (for to acsess user's current_user registry key)
NTAccount userAccount = new NTAccount(envVar["Name"].ToString());
SecurityIdentifier sid = (SecurityIdentifier)userAccount.Translate(typeof(SecurityIdentifier));
string sidString = sid.ToString();
File.AppendAllText("c:\\outs\\log.txt", " ---- user account ----" + userAccount + "\n\n");
File.AppendAllText("c:\\outs\\log.txt", " ---- sid string ----" + sidString + "\n\n");
}
答案 0 :(得分:1)
我已经解决了我的问题:
var searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
var collection = searcher.Get();
string username = (string)collection.Cast<ManagementBaseObject>().First()["UserName"];