为什么我得到"没有找到与指定参数匹配的安全对象"错误(GroupPrincipal)

时间:2018-01-22 16:08:39

标签: c# .net principalcontext groupprincipal

我正在创建一个程序,在特定计算机上添加域用户 本地群组

我成功完成了将用户添加到群组的部分,但在删除时我遇到了此错误。

  

抛出异常:' System.DirectoryServices.AccountManagement.NoMatchingPrincipalException'在System.DirectoryServices.AccountManagement.dll中   类型为' System.DirectoryServices.AccountManagement.NoMatchingPrincipalException'的未处理异常发生在System.DirectoryServices.AccountManagement.dll中   附加信息:没有与找到的指定参数匹配的安全对象

这是我的功能和变量可以包含的示例

string username = "USER123"
string localGroupName = "Administrators"
string computername = "computer1"
using (PrincipalContext pc = new PrincipalContext(ContextType.Machine,computername))
{
    GroupPrincipal group = GroupPrincipal.FindByIdentity(pc, localGroupName);

    group.Members.Remove(pc, IdentityType.Name, username);
    group.Save();
}

我也尝试更改IdentityType,但结果相同

group.Members.Remove(pc, IdentityType.SamAccountName, username);

我可以使用foreach打印任何组的所有成员,因此我将所有内容都设置为" GroupPrincipal"是对的。

似乎我输入了错误的用户名,但用户名是正确的(我用它来登录域中的计算机)并且使用下面的公式也无济于事。

  

域名\用户名

我也找到了this帖子,但对我来说,它看起来几乎是一回事,但写得不一样。

非常感谢任何帮助或想法!很抱歉,如果我遗漏了一些明显的东西,但我暂时只使用C#。

1 个答案:

答案 0 :(得分:0)

找到解决我问题的方法。也许这对某人有帮助,所以我在这里发帖。

driver.find_element_by_xpath('//*[@id="historical-electric-download"]/a[@class="no-underline"]').click()
driver.find_element_by_xpath('//*[@id="historical-electric-download"]/div/a[@class="csv-link"]').click()

或多或少我编辑了this问题的答案。他的解决方案是不搜索组中​​的所有成员(如果我正确地检查他的代码),但工作解决方案正在解决。