GroupPrincipal.Members.Add (userPrincipal) Выдает ошибку - PullRequest
2 голосов
/ 30 ноября 2011

У меня есть следующий код C #, который должен добавить пользователя в существующую группу. Теперь каждый раз, когда я пытаюсь добавить пользователя в группу, выдается следующее сообщение:

Невозможно привести COM-объект типа 'System .__ ComObject' к типу интерфейса 'IADsGroup'. Эта операция завершилась неудачно, поскольку вызов QueryInterface для компонента COM для интерфейса с IID '{27636B00-410F-11CF-B1FF-02608C9E7553}' завершился неудачно из-за следующей ошибки: такой интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE)) .System.DirectoryServices.AccountManagement

Ниже приведен соответствующий код:

// Clearing result message variable before using
    sResult = "";

    bool bGroupMemberOf = false;
    using (PrincipalContext sourceContext = new PrincipalContext(ContextType.Domain, sDomainName))
    {
        try
        {
            GroupPrincipal group = GroupPrincipal.FindByIdentity(sourceContext, IdentityType.Name, sGroupName);
            if (group.Members.Contains(sourceContext, IdentityType.SamAccountName, sAccountName))
            {
                sResult += sAccountName + " already member of" + group.Name + Environment.NewLine;
            }
            group.Members.Add(sourceContext, IdentityType.SamAccountName, sAccountName);
            group.Save();
            group.Dispose();

            sResult += sAccountName + " is now member of " + group.Name + Environment.NewLine;
        }
        catch (Exception error)
        {
            return  error.Message + "-" + error.Source + Environment.NewLine;
        }
    }
    return sResult;

Может кто-нибудь сказать мне, что здесь происходит не так. Я с трудом могу найти ссылку на полученную ошибку.

1 Ответ

0 голосов
/ 01 декабря 2011

Не могли бы вы попытаться слегка изменить код для использования GroupPrincipal и UserPrincipal, например:

try {
   GroupPrincipal group = GroupPrincipal.Find....
   UserPrincipal user = UserPrincipal.Find....

   group.Members.Add( user );
}

Это также вызывает исключение?

...