Получение списка пользователей Windows - C#
Формулировка задачи:
Получаем список всех локальных пользователей на компьютере
Вариант №1
Работает, но работает до неприличия медленно, может быть можно как-то ускорить процесс?
Вариант №2 через WMI
Не выводит ничего, хотя всё должно работать.
Ну и собственно вопросы, можно ли сделать вариант №1 с удобоваримой скоростью или же в чём проблема в варианте №2?
Кстати, если убрать
из запроса, то скорость выполнения второго варианта станет сравнима со скоростью первого, однако же результата не будет всё равно никакого.
DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName); foreach (DirectoryEntry child in localMachine.Children) { if (child.SchemaClassName == "User") { listBox1.Items.Add(child.Name + Environment.NewLine); listBox2.Items.Add(child.Name + Environment.NewLine); } }
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_UserAccount WHERE LocalAccount=True"); foreach (ManagementObject envVar in searcher.Get()) { listBox1.Items.Add(envVar["Name"] + Environment.NewLine); listBox2.Items.Add(envVar["Name"] + Environment.NewLine); }
WHERE LocalAccount=True
Решение задачи: «Получение списка пользователей Windows»
textual
Листинг программы
using System; using System.Management; using System.Windows.Forms; namespace WMISample { public class MyWMIQuery { public static void Main() { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_UserAccount"); foreach (ManagementObject queryObj in searcher.Get()) { Console.WriteLine("-----------------------------------"); Console.WriteLine("Win32_UserAccount instance"); Console.WriteLine("-----------------------------------"); Console.WriteLine("Name: {0}", queryObj["Name"]); } } catch (ManagementException e) { MessageBox.Show("An error occurred while querying for WMI data: " + e.Message); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д