我正在创建一个程序,在特定计算机上添加域用户 从本地群组 。
我成功完成了将用户添加到群组的部分,但在删除时我遇到了此错误。
抛出异常:' 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#。
答案 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问题的答案。他的解决方案是不搜索组中的所有成员(如果我正确地检查他的代码),但工作解决方案正在解决。