用户所在的wmi组

时间:2010-04-13 08:28:09

标签: visual-studio-2008 wmi

我有找到所有本地用户的代码:

        ManagementObjectSearcher userSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_UserAccount");
        foreach (ManagementObject user in userSearcher.Get())
        {
            if ((bool)user["LocalAccount"])
            {
                string UserName = (string)user["Name"];
            }
        }
        return;

现在我想要的代码可以帮助我选择用户所在的所有组。我知道有一个名为Win32_GroupUser的表,我必须使用PartComponent来指示用户名,但我无法创建查询。请帮助获取有关WQL的信息。

1 个答案:

答案 0 :(得分:0)

查询类似于:

select * from Win32_GroupUser 
       WHERE PartComponent="Win32_Group.Domain='Workgroup',Name='LocalAccount'" 

string query = "Select * from Win32_GroupUser Where PartComponent=";
query += '"Win32_Group.Domain=';
query += "'" + user["Domain"] + "'";
query += ",Name='" + user["Name"] + "'";
query += '"';

您需要传递域名和用户名才能查找关联的组。出于性能原因,我建议使用StringBuilder类。

我从this文章中得出了这个答案。