XP和Win7之间的Management.ManagementObject的区别

时间:2012-07-12 19:25:39

标签: c# windows vb.net windows-7 windows-xp

我设置了两个操作系统,一个是win7和一个XP,它们都在同一个 WORKGROUP 中(没有一个在域中这样)

我正在尝试使用以下代码获取计算机的WorkGroup名称:

VB.NET:

Public Function GetWorkGroup() As String
    Dim computer_system As New Management.ManagementObject(String.Format("Win32_ComputerSystem.Name='{0}'", Environment.MachineName))
    Dim result As Object = computer_system("Workgroup")
    Return result.ToString()
End Function

C#:

public string GetWorkGroup()
{
    Management.ManagementObject computer_system = new management.ManagementObject(string.Format("Win32_ComputerSystem.Name='{0}'",   Environment.MachineName));
    object result = computer_system("Workgroup");
    return result.ToString();
}

这适用于Win7,但在XP上,computer_system(“Workgroup”)导致无效。 如果我想让它工作,我必须做出以下修改:

VB.NET:
        Dim result As Object = computer_system("Domain")
C#:
        object result = computer_system("Domain");

这适用于Win7和XP,提供正确的工作组名称,但如果我在XP上使用Domain属性返回工作组名称,那么就会出现问题。

有人可以解释一下,为什么XP会把它的工作组作为一个域来处理?感谢。

0 个答案:

没有答案