我希望获得DirectoryEntry
个对象,例如域用户组。我正在关注this link以从特定群组中移除用户。
strGroup = "CN=TestGroup,OU=TestOU";
objGroup = objADAM.Children.Find(strGroup, "group");
此代码来自MSDN示例。如果我在Active Directory用户和计算机applet中找到我的组,即CN和OU?
编辑:
更一般地说,我在哪里可以找到Find
方法的名称?
来自MSDN:
名
类型:System.String
要搜索的子目录对象的名称。
这是尊贵的名字还是其他?
答案 0 :(得分:1)
您正在混合两个共享大量重叠的独立环境。 DirectoryEntry是DirectoryServices包的一部分,GetObject是一个与ActiveDs.dll连接的VBA工具。
如果这需要是可视化基本脚本,那么您将拥有GetObject()或Find()方法的DirectoryEntry等效项。如果需要访问属性,请使用object.Get(“property_name”)方法(返回多值属性的数组)
如果您可以将开发平台交换到.NET,您将可以访问所需的所有DirectoryServices。
编辑:如果这是一个C#.NET应用程序,这里是使用的代码
private static DirectoryEntry getGroupDE(String group)
{
String adserver = "dc.companyname.com";
String searchroot = "ou=Groups,dc=companyname,dc=com";
DirectorySearcher ds = new DirectorySearcher();
ds.SearchRoot = new DirectoryEntry(String.Format("LDAP://{0}/{1}",adserver,searchroot));
ds.SearchScope = SearchScope.Subtree;
ds.Filter = String.Format("(&(objectCategory=group)(sAMAccountName={0}))",group);
SearchResult sr = ds.FindOne();
if (sr == null)
{
return null;
}
return sr.GetDirectoryEntry();
}