add (userPrincipal)抛出错误

本文关键字:出错 错误 userPrincipal add | 更新日期: 2023-09-27 18:16:07

我有下面的c#代码,应该添加一个用户到一个现有的组。现在,每次我尝试将用户添加到组时,都会抛出以下错误:

无法强制转换'System '类型的COM对象。__ComObject'到接口类型'IADsGroup'。此操作失败,因为对IID为'{27636B00-410F-11CF-B1FF-02608C9E7553}'的接口的COM组件的QueryInterface调用失败,原因是由于以下错误:No such interface supported (Exception from 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;
谁能告诉我这里出了什么问题?我几乎找不到任何关于我收到的错误的参考。

add (userPrincipal)抛出错误

你可以试着稍微重构一下代码,同时使用GroupPrincipalUserPrincipal,像这样:

try {
   GroupPrincipal group = GroupPrincipal.Find....
   UserPrincipal user = UserPrincipal.Find....
   group.Members.Add( user );
}

是否也会抛出异常?

相关文章: