Этот список профилей хранится в реестре по адресу:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Таким образом, вы можете прочитать этот раздел реестра из своего кода. Эти ключи содержат SID учетных записей, которые затем можно перевести в формат DOMAIN\username
, например:
using (var profileList = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList")) {
foreach (string keyName in profileList.GetSubKeyNames()) {
using (var profile = profileList.OpenSubKey(keyName)) {
if ((int) profile.GetValue("FullProfile", 0) != 1) continue;
var sid = new SecurityIdentifier(keyName);
Console.WriteLine(sid.Translate(typeof(NTAccount)));
}
}
}
Проверка значения FullProfile
1
просто для исключения SYSTEM
, LOCAL SERVICE
и NETWORK SERVICE
учетные записи.