Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中尝试使用目录服务帐户管理删除本地用户组时出现异常#_C#_.net_Windows_Directoryservices_Account Management - Fatal编程技术网

C# 在C中尝试使用目录服务帐户管理删除本地用户组时出现异常#

C# 在C中尝试使用目录服务帐户管理删除本地用户组时出现异常#,c#,.net,windows,directoryservices,account-management,C#,.net,Windows,Directoryservices,Account Management,我正在尝试以编程方式删除本地用户组。我正在使用下面的代码,这些代码是我从各种在线示例中拼凑而成的。从我所读到的一切来看,它应该是有效的。但是删除行抛出一个异常 PrincipalContext context = new PrincipalContext( ContextType.Machine ); GroupPrincipal group = new GroupPrincipal( context ); PrincipalSearcher ps = new PrincipalSearcher

我正在尝试以编程方式删除本地用户组。我正在使用下面的代码,这些代码是我从各种在线示例中拼凑而成的。从我所读到的一切来看,它应该是有效的。但是删除行抛出一个异常

PrincipalContext context = new PrincipalContext( ContextType.Machine );
GroupPrincipal group = new GroupPrincipal( context );
PrincipalSearcher ps = new PrincipalSearcher( group );
PrincipalSearchResult<Principal> results = ps.FindAll();
Principal foundGroup = results.SingleOrDefault( item => item.Name == groupName );
if(foundGroup != null)
    foundGroup.Delete(); // Here occurs the InvalidOperationException
PrincipalContext context=新的PrincipalContext(ContextType.Machine);
GroupPrincipal组=新的GroupPrincipal(上下文);
PrincipalSearcher ps=新PrincipalSearcher(组);
PrincipalSearchResult结果=ps.FindAll();
Principal foundGroup=results.SingleOrDefault(item=>item.Name==groupName);
if(foundGroup!=null)
foundGroup.Delete();//这里出现了InvalidOperationException
这会抛出一个带有以下消息的
InvalidOperationException

位于路径WinNT://LOREM/IPSUM的Active Directory对象不是容器。“


说到Active Directory,我完全是个新手。

你能试试
PrincipalSearchResult

我也不确定你的.SingleOrDefault是否正确使用。你能试试吗:

results.Where(item => item.Name == groupName).SingleOrDefault();

这是前一段时间提出的问题,但我今天遇到了这个问题。似乎Group and UserPrincipal库中存在一个bug。这就是我如何为将来遇到此问题的任何人解决此问题的方法:

对于团体:

string groupName = "myGroup";

// Workaround: WinNT://DOMAIN/USER is not a container even if group is empty
using (var root = new DirectoryEntry($"WinNT://{Environment.MachineName}"))
using (var group = root.Children.Find(groupName, "group"))
{
    root.Children.Remove(group);
    result = true;
}
对于用户帐户:

string userAccountName = "myUser";

// Workaround: WinNT://DOMAIN/USER is not a container issue
using (var root = new DirectoryEntry($"WinNT://{Environment.MachineName}"))
using (var userAccount = root.Children.Find(userAccountName))
{
    root.Children.Remove(userAccount);
}
“PrincipalSearchResult”不会编译,因为FindAll返回“PrincipalSearchResult”。并且更改LINQ查询没有任何效果。您是否尝试并获得了删除组的方法?