Как я могу получить имя рабочей группы компьютера с использованием C #? - PullRequest
4 голосов
/ 25 апреля 2010

Я читал о том, как получить его с помощью класса Environment, но не могу его найти.

Спасибо, ребята.

Ответы [ 4 ]

6 голосов
/ 06 июня 2011

Способ, основанный на ответе Jono, но более короткий:

public static string GetWorkGroup()
{
    ManagementObject computer_system = new ManagementObject(
                string.Format(
                "Win32_ComputerSystem.Name='{0}'",
                Environment.MachineName));

    object result = computer_system["Workgroup"];
    return result.ToString();
}
4 голосов
/ 25 апреля 2010

Вы можете сделать это с WMI; добавьте ссылку на System.Management.dll и инструкцию использования для пространства имен System.Management, а затем вызовите следующий код:

ManagementObjectSearcher mos = 
  new ManagementObjectSearcher(@"root\CIMV2", @"SELECT * FROM Win32_ComputerSystem");
foreach (ManagementObject mo in mos.Get()) {
  Console.WriteLine(mo["Workgroup"]);
}
3 голосов
/ 28 марта 2015

Я попробовал это, используя варианты WMI, предложенные здесь, но на моей машине (и некоторых других в моем офисе) она оказалась мучительно медленной (иногда более 5 секунд). То, что в итоге помогло мне, это использование вызова API «NetGetJoinInformation» ( PInvoke.net ). Вызов API возвращается очень быстро для меня и делает именно то, что мне нужно.

0 голосов
/ 25 апреля 2010

Посмотрите здесь для примера. Вам придется использовать P / Invoke.

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