c# - 如何有效地获取当前的 Windows 用户帐户名?
问题描述
我正在尝试获取“当前活动用户帐户名”(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");
}
解决方案
我已经使用以下方法解决了我的问题:
var searcher = new ManagementObjectSearcher("SELECT UserName FROM Win32_ComputerSystem");
var collection = searcher.Get();
string username = (string)collection.Cast<ManagementBaseObject>().First()["UserName"];
推荐阅读
- c# - 识别句子中的短语/单词
- maps - 城际交通方向不适用于 heremap rest api
- mysql - 如何在 MySQL (PhpMyAdmin) 的用户表中“散列”我的密码?
- javascript - React Native Firebase:如何显示 Firestore 中的文本?
- google-app-engine - 为什么我的跨账户、模拟、appengine 域映射列表调用失败?
- python - 使用 Requests 获取请求而不是 curl
- azure - 在 Azure Notebooks 上显示 Pycaret 图
- powerbi - Power BI - 合并两个表并在任何缺失的列上动态输入默认值
- docker - 如何将 GCP > Container Registry 身份验证密钥添加到 Docker config.json?
- jmeter - 如何捕获jmeter日志信息