【发布时间】:2026-01-22 04:45:02
【问题描述】:
为什么这段代码不起作用?我想要做的是将域用户添加到本地组中。
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() });
非常感谢您的帮助。
【问题讨论】:
-
有内部异常吗?它说什么?
-
是的,存在内部异常。 “传递了一个无效的目录路径名”
-
我相信你不能将带有
WinNT://前缀的东西添加到LDAP://树中。如果要将其添加到 LDAP 域中,则需要找到一种方法来使用 LDAP 路径来表达该组 -
我不想将域用户(LDAP 树)添加到本地组(WinNT 树)中。所以我需要通过 LDAP 访问本地组?我该怎么做?
标签: c# active-directory dns