группа wmi, в которой состоят пользователи - PullRequest
0 голосов
/ 13 апреля 2010

У меня есть код, который находит всех локальных пользователей:

        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 голосов
/ 26 августа 2010

Запрос будет выглядеть примерно так:

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.

Я получил этот ответ из этой статьи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...