Получить список имен локальных компьютеров в Windows - PullRequest
18 голосов
/ 09 марта 2011

Как я могу получить список имен локальных компьютеров в Windows, используя C #?

Ответы [ 4 ]

28 голосов
/ 09 марта 2011
using System.Management;

SelectQuery query = new SelectQuery("Win32_UserAccount");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);
foreach (ManagementObject envVar in searcher.Get())
{
     Console.WriteLine("Username : {0}", envVar["Name"]);
}

Этот код аналогичен ссылке , которую KeithS опубликовал .Я использовал его пару лет назад без проблем, но забыл, откуда он, спасибо Кит.

6 голосов
/ 30 апреля 2014

Я использую этот код для получения локальных пользователей Windows 7:

public static List<string> GetComputerUsers()
{
    List<string> users = new List<string>();
    var path =
        string.Format("WinNT://{0},computer", Environment.MachineName);

    using (var computerEntry = new DirectoryEntry(path))
        foreach (DirectoryEntry childEntry in computerEntry.Children)
            if (childEntry.SchemaClassName == "User")
                users.Add(childEntry.Name);

    return users;
}
0 голосов
/ 09 марта 2011

Ниже приведены несколько разных способов получить имя локального компьютера:

string name = Environment.MachineName;
string name = System.Net.Dns.GetHostName();
string name = System.Windows.Forms.SystemInformation.ComputerName;
string name = System.Environment.GetEnvironmentVariable(“COMPUTERNAME”);
0 голосов
/ 09 марта 2011

Один из способов - перечислить каталоги в C:\Documents and Settings (в Vista / 7: C:\Users).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...