在 C++ Win32 中获取计算机上的用户配置文件列表

2021-12-18 00:00:00 winapi c++

枚举计算机上所有用户配置文件的最佳方法是什么?

What is the best way to enumerate all of the user profiles on a computer?

我知道如何获取当前登录的用户配置文件,并且我知道如何获取所有用户"配置文件.但我想获得计算机上每个配置文件的列表.

I know how to get the currently logged in user profile, and I know how to get the "all user" profile. But I'd like to get a list of each and every profile on the computer.

推荐答案

在像 flokra 建议的那样走无证路线之前,我会尝试 NetUserEnum() 或 NetQueryDisplayInformation()

Before going the undocumented route like flokra suggests, I would try NetUserEnum() or NetQueryDisplayInformation()

如果你想进入无证领域,HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList 有一个(不完整的)账户列表(缺少像 ASPNET、HelpAssistant 和 SUPPORT_xxxx 这样的特殊账户) 它还具有配置文件文件夹的路径,这比使用 %ALLUSERSPROFILE%.. 安全得多,但为什么在有 GetProfilesDirectory()

If you want to go into undocumented land, HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList has a (incomplete) list of accounts (It's missing special accounts like ASPNET, HelpAssistant and SUPPORT_xxxx) It also has the path to the profile folder, which is a lot safer than using %ALLUSERSPROFILE%.. but why use it when there is GetProfilesDirectory()

相关文章