Группа 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 ответ
Запрос будет выглядеть примерно так:
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.
Я получил этот ответ из этой статьи.