C#,为什么我能';是否将域用户添加到本地组?

C#,为什么我能';是否将域用户添加到本地组?,c#,active-directory,dns,C#,Active Directory,Dns,为什么这个代码不起作用?我要做的是将域用户添加到本地组中 DirectorySearcher srch = new DirectorySearcher(new DirectoryEntry("LDAP://" + "AD1.test.it/DC=test,DC=it")); srch.Filter = "(&(objectClass=user)(sAMAccountName=testUser))"; SearchResultCollection results =

为什么这个代码不起作用?我要做的是将域用户添加到本地组中

DirectorySearcher srch = new DirectorySearcher(new DirectoryEntry("LDAP://" + "AD1.test.it/DC=test,DC=it"));
srch.Filter = "(&(objectClass=user)(sAMAccountName=testUser))";            
SearchResultCollection results = srch.FindAll();
DirectoryEntry de = new DirectoryEntry(results[0].Path);

DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
DirectoryEntry dComUsersGrp = localMachine.Children.Find("Distributed COM Users", "group");
dComUsersGrp.Invoke("Add", new object[] { de.Path.ToString() }); 
DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
DirectoryEntry de = localMachine.Children.Find("testUser", "user");

DirectoryEntry dComUsersGrp = localMachine.Children.Find("Distributed COM Users", "group");
dComUsersGrp.Invoke("Add", new object[] { de.Path.ToString() });
我得到这个错误:“异常已被调用的目标抛出。”

类似代码用于将本地用户添加到本地组中

DirectorySearcher srch = new DirectorySearcher(new DirectoryEntry("LDAP://" + "AD1.test.it/DC=test,DC=it"));
srch.Filter = "(&(objectClass=user)(sAMAccountName=testUser))";            
SearchResultCollection results = srch.FindAll();
DirectoryEntry de = new DirectoryEntry(results[0].Path);

DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
DirectoryEntry dComUsersGrp = localMachine.Children.Find("Distributed COM Users", "group");
dComUsersGrp.Invoke("Add", new object[] { de.Path.ToString() }); 
DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
DirectoryEntry de = localMachine.Children.Find("testUser", "user");

DirectoryEntry dComUsersGrp = localMachine.Children.Find("Distributed COM Users", "group");
dComUsersGrp.Invoke("Add", new object[] { de.Path.ToString() });

非常感谢您的帮助。

您通常必须指定登录凭据才能访问目录。比如:

String domainAndUsername = domain + @"\" + username;
DirectoryEntry entry = new DirectoryEntry(_path, domainAndUsername, pwd);

您需要使用WinNT://ADSI名称空间。

是否存在内部异常?它说什么?是的,有内在的例外。“传递了无效的目录路径名”我相信您不能将带有
WinNT://
前缀的内容添加到
LDAP://
树中。如果要将该组添加到LDAP域中,则需要找到一种使用LDAP路径表示该组的方法,而不是将域用户(LDAP树)添加到本地组(WinNT树)中。所以我需要通过LDAP访问本地组?我该怎么做?