如何使用C#获取计算机的工作组名称?

时间:2010-04-25 14:49:33

标签: c# workgroup

我读过有关使用Environment类获取它的信息,但找不到它。

谢谢你们。

4 个答案:

答案 0 :(得分:6)

基于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();
}

答案 1 :(得分:4)

你可以用WMI做到这一点;添加对System.Management.dll的引用和System.Management命名空间的using语句,然后调用以下代码:

ManagementObjectSearcher mos = 
  new ManagementObjectSearcher(@"root\CIMV2", @"SELECT * FROM Win32_ComputerSystem");
foreach (ManagementObject mo in mos.Get()) {
  Console.WriteLine(mo["Workgroup"]);
}

答案 2 :(得分:3)

我使用此处建议的WMI选项尝试了这一点,但事实证明我的机器(以及我办公室中的其他几个人)的速度极慢(有时超过5秒)。最终为我工作的是使用API​​调用“NetGetJoinInformation”(PInvoke.net)。 API调用对我来说非常快,并且完全符合我的需要。

答案 3 :(得分:0)

查看here示例。你必须使用P / Invoke。