我正在针对 Active Directory 编写一些 c# 代码,并且无休止地尝试让它工作无济于事。以下代码有效,后面的代码无效:
下面的代码使用 "WinNT://" + Environment.MachineName + ",Computer" 进行连接并且工作正常。
DirectoryEntry localMachine = new DirectoryEntry
("WinNT://" + Environment.MachineName + ",Computer");
DirectoryEntry admGroup = localMachine.Children.Find
("Administrators", "group");
object members = admGroup.Invoke("members", null);
foreach (object groupMember in (IEnumerable)members)
{
DirectoryEntry member = new DirectoryEntry(groupMember);
output.RenderBeginTag("p");
output.Write(member.Name.ToString());
output.RenderBeginTag("p");
}
base.Render(output);
我现在正在尝试更改线路:
"WinNT://" + Environment.MachineName + ",Computer"
到
"LDAP://MyDomainControllerName"
但似乎无论我尝试什么值来代替值“MyDomainControllerName”,它都不会起作用。
要获取“MyDomainControllerName”值,我右键单击 MyComputer 并按照其他地方的建议复制计算机名称值,但这不起作用。
当我尝试使用上面的 LDAP://RootDSE 选项时,会导致以下错误:
位于路径 LDAP://RootDSE 的 Active Directory 对象不是容器
这是您提到的成员方法的问题吗?