如何在c#中获取包括本地系统帐户在内的所有帐户
本文关键字:所有帐户 系统 包括本 获取 | 更新日期: 2023-09-27 18:25:31
我正在开发一个winforms向导,在该向导的一个页面中,我需要列出所有帐户,以便用户选择一个。所以我的工作代码是:
private static IEnumerable<string> GetUsersAccountName()
{
var searcher = new ManagementObjectSearcher(new SelectQuery("Win32_UserAccount"));
var usersAccounts = (from ManagementBaseObject envVar in searcher.Get()
select envVar["Name"].ToString());
return users.ToList();
}
所以用这个方法我得到了帐户的名称,但没有得到"本地系统帐户",如何也得到这个帐户名称?
你是对的,为了接收帐户名称,你需要做一些小事情。你可以按SID查找。事实上,对于LocalSystem(S-1-5-18),SID总是相同的。
要真正转换它,请尝试以下操作:
string localSysAccountName = new SecurityIdentifier("S-1-5-18")
.Translate(typeof(NTAccount)).ToString();
如果这似乎不起作用,请查看LookupAccountSid。