如何获得Windows中的用户数量?

时间:2015-04-04 23:24:40

标签: c winapi

是否有WinAPI函数可以知道Windows中有多少用户(甚至更好的名字)?

另一种解决方案是检查C:\Users文件夹中存在哪些文件夹吗?

2 个答案:

答案 0 :(得分:2)

使用NetUserEnumNetQueryDisplayInformation

    PVOID pv;
    DWORD n, i = 0, err;
    do 
    {
        switch (err = NetQueryDisplayInformation(0, 1, i, MAXDWORD, MAX_PREFERRED_LENGTH, &n, &pv))
        {
        case 0:
        case ERROR_MORE_DATA:
            if (n)
            {
                PNET_DISPLAY_USER p = (PNET_DISPLAY_USER)pv;

                do
                {
                    i = p->usri1_next_index;

                    DbgPrint("<%S> <%S>\n", p->usri1_name, p->usri1_comment);

                } while (p++, --n);
            }
            NetApiBufferFree(pv);
            break;
        }
    } while (err == ERROR_MORE_DATA);

答案 1 :(得分:-1)

您可以使用PowerShell命令获取本地计算机用户列表。

$LocalAccount = Get-WmiObject -Query "Select Name, LocalAccount FROM WIN32_UserAccount WHERE LocalAccount=true"

<强> 或者:

$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$adsi.Children | where {$_.SchemaClassName -eq 'user'} | select -expand name