并非所有组都通过WMI返回

时间:2014-03-22 21:51:35

标签: c# wmi wmi-query

如果我与计算机管理进行比较,使用下面的代码并不会返回所有组名。我做错了吗?

更新:如果我重新启动我的应用程序,它会更新

C#代码

try
{
    ManagementObjectSearcher searcher =
        new ManagementObjectSearcher("root\\CIMV2",
        "SELECT * FROM Win32_GroupUser");            

    foreach (ManagementObject queryObj in searcher.Get())
    {   
         String sGroupName = queryObj["GroupComponent"].ToString().Split(new[] { "Name=" }, StringSplitOptions.None).Last().Trim('"'); 
         String sUsername = queryObj["PartComponent"].ToString().Split(new[] { "Name=" }, StringSplitOptions.None).Last().Trim('"');
    }
}
catch (ManagementException exception)
{
    MessageBox.Show("An error occurred while querying for WMI data: " + exception.Message);
}

2 个答案:

答案 0 :(得分:2)

我相信Win32_GroupUser是用户和群组之间的关系。

如果某个群组没有用户,则不会包含该用户。

尝试查询Win32_Group。

答案 1 :(得分:1)

我将结果绑定到网格,你必须先将数据源设置为null - 这是我的问题。