列出用户在登录屏幕上可见的Windows用户帐户

列出用户在登录屏幕上可见的Windows用户帐户,windows,user-accounts,Windows,User Accounts,我想列出Windows用户帐户,但只列出那些在登录屏幕上可见的帐户,一个在Windows启动后显示的帐户 我在谷歌上搜索了一下,发现的都是这种方法: 但是,在我的计算机上没有上面文章中提到的注册表项-我不想创建它们,我想检查一些已经存在的东西 我使用以下查询: List<string> list = new List<string>(); SelectQuery query = new SelectQuery("Win32_UserAccount"); Managem

我想列出Windows用户帐户,但只列出那些在登录屏幕上可见的帐户,一个在Windows启动后显示的帐户

我在谷歌上搜索了一下,发现的都是这种方法:

但是,在我的计算机上没有上面文章中提到的注册表项-我不想创建它们,我想检查一些已经存在的东西

我使用以下查询:

List<string> list = new List<string>();

SelectQuery query = new SelectQuery("Win32_UserAccount");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);

foreach (ManagementObject obj in searcher.Get())
{
     if (isInteresting(obj))
     {
         list.Add(obj.GetPropertyValue("Name").ToString());
     }
}
List List=新列表();
SelectQuery query=新建SelectQuery(“Win32_用户帐户”);
ManagementObjectSearcher search=新的ManagementObjectSearcher(查询);
foreach(searcher.Get()中的ManagementObject对象)
{
如果(IsInterest(obj))
{
添加(obj.GetPropertyValue(“Name”).ToString());
}
}

使用上述查询返回的对象属性,我设法过滤了一些帐户(这些属性的完整列表:),但从日常用户的角度来看,仍然存在一些垃圾(例如用于驱动程序供应商更新的帐户).

该注册表项不是登录屏幕上可能不显示帐户的唯一原因。以下是其他一些:

  • 该帐户已禁用
  • 该帐户没有交互式登录权限(SeInteractiveLogonRight)
  • 该帐户被明确拒绝交互登录权限(SeDenyInteractiveLogonRight)
通常,SeInteractiveLogonRight授予来宾用户以及管理员、用户和备份操作员组的成员。登录屏幕上可能不会显示任何非这些组成员的帐户(来宾帐户除外)。(如果SeInteractiveLogonRight已从其中一个组中删除,我不确定会发生什么,如果登录屏幕显示帐户,我也不会感到惊讶。)


您可以使用检查帐户是否已应用SeDenyInteractiveLogonRight,或获取受影响帐户的列表。通常,个人帐户(而不是组)被授予此权限,因此登录屏幕可能会以这种方式检查帐户。

该注册表项不是帐户无法显示在登录屏幕上的唯一原因。以下是其他一些:

  • 该帐户已禁用
  • 该帐户没有交互式登录权限(SeInteractiveLogonRight)
  • 该帐户被明确拒绝交互登录权限(SeDenyInteractiveLogonRight)
通常,SeInteractiveLogonRight授予来宾用户以及管理员、用户和备份操作员组的成员。登录屏幕上可能不会显示任何非这些组成员的帐户(来宾帐户除外)。(如果SeInteractiveLogonRight已从其中一个组中删除,我不确定会发生什么,如果登录屏幕显示帐户,我也不会感到惊讶。)


您可以使用检查帐户是否已应用SeDenyInteractiveLogonRight,或获取受影响帐户的列表。通常,个人帐户而不是组被授予此权限,因此登录屏幕可能会以这种方式检查帐户。

然后检查帐户是否也存在。显然,如果它们不存在,它们就不会被设置。检查是否也存在什么?对不起,我没有得到你的答案。嗯,它们在我的计算机上不存在(正如我上面提到的),而且我没有删除它们->它们在每台计算机上都不存在。我正在寻找一种方法,可以在安装了Windows的每台计算机上运行。如果密钥不存在,则显然不会设置这些密钥。是的,这是真的,但我真的不明白这如何使我更接近于列出登录屏幕上可见的用户。在我的计算机上有几个用户,只有一个可见,没有上面提到的键。然后检查他们是否也存在。显然,如果它们不存在,它们就不会被设置。检查是否也存在什么?对不起,我没有得到你的答案。嗯,它们在我的计算机上不存在(正如我上面提到的),而且我没有删除它们->它们在每台计算机上都不存在。我正在寻找一种方法,可以在安装了Windows的每台计算机上运行。如果密钥不存在,则显然不会设置这些密钥。是的,这是真的,但我真的不明白这如何使我更接近于列出登录屏幕上可见的用户。在我的计算机上有几个用户,只有一个可见,上面没有提到的键。