我有找到所有本地用户的代码:
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的信息。
答案 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文章中得出了这个答案。