【问题标题】:How to get the current Windows User Account Name efficiently?如何有效地获取当前的 Windows 用户帐户名?
【发布时间】:2021-06-02 11:19:17
【问题描述】:

我正在尝试获取“当前活动用户帐户名称”(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");
}

【问题讨论】:

标签: c# .net windows user-accounts


【解决方案1】:

我已经解决了我的问题:

var searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
var collection = searcher.Get();
string username = (string)collection.Cast<ManagementBaseObject>().First()["UserName"];

【讨论】:

    猜你喜欢
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 2011-01-06
    • 2017-05-12
    • 2011-05-15
    相关资源
    最近更新 更多