ad域organizationalUnit有哪些属性
时间: 2024-03-06 11:30:20 浏览: 19
AD域Organizational Unit(OU)是一种逻辑容器,用于组织和管理AD域中的对象。OU具有多种属性,包括:
1. distinguishedName:OU在AD域中的唯一标识符。
2. name:OU的名称。
3. description:对OU的描述信息。
4. objectCategory:OU所属的对象类别。
5. objectClass:OU的对象类别。
6. ou:OU的名称。
7. cn:OU的通用名称。
8. whenCreated:OU创建时间。
9. whenChanged:OU最后修改时间。
10. managedBy:OU的管理者。
11. member:OU所包含的成员对象。
12. gPLink:OU关联的组策略信息。
13. gPOptions:OU关联的组策略选项。
14. msDS-QuotaContainer:OU关联的配额容器信息。
以上是OU可能包含的一些常见属性。但是,并不是所有OU都包含所有这些属性,具体属性可能因环境和配置而异。
相关问题
AD 域中的container除了由user类还有哪些
在Active Directory(AD)域中,container是一种特殊的对象,可以用来组织和管理其他对象,例如用户、组、计算机等。除了由user类创建的container,还有以下其他类型的container:
1. Organizational Unit (OU):组织单位,用于组织和管理其他AD对象,例如用户、组、计算机等。OU可以被用来划分不同的部门、团队或者项目。
2. Group:组对象,包含一组用户或计算机。组可以用来简化权限管理,让管理员可以将权限授予一个组而不是单独的用户。
3. Computer:计算机对象,表示一个计算机在AD域中的存在。计算机对象包含计算机的名称、操作系统版本等信息。
4. Contact:联系人对象,用于表示一个AD域之外的人员或者组织,例如供应商或者客户。
这些container对象可以被用来组织和管理AD域中的其他对象,使得管理员可以更方便地进行权限管理、资源分配和用户管理等任务。
java 获取ad域信息_JAVA 通过LDAP获取AD域用户及组织信息
要通过Java使用LDAP获取AD域用户和组织信息,需要使用Java的JNDI API。
以下是一个简单的Java程序,演示如何使用JNDI API连接到AD域并获取用户和组织信息:
```
import java.util.*;
import javax.naming.*;
import javax.naming.directory.*;
public class ADInfo {
public static void main(String[] args) {
String ldapURL = "ldap://AD域服务器地址:389";
String ldapUser = "CN=LDAP查询用户,OU=xxx,DC=xxx,DC=xxx";
String ldapPassword = "LDAP查询用户密码";
String searchBase = "OU=xxx,DC=xxx,DC=xxx";
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldapURL);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, ldapUser);
env.put(Context.SECURITY_CREDENTIALS, ldapPassword);
try {
DirContext ctx = new InitialDirContext(env);
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String filter = "(objectCategory=user)";
NamingEnumeration<SearchResult> results = ctx.search(searchBase, filter, searchControls);
while (results.hasMore()) {
SearchResult searchResult = results.next();
Attributes attributes = searchResult.getAttributes();
Attribute attribute = attributes.get("cn");
String cn = (String) attribute.get();
System.out.println(cn);
}
filter = "(objectCategory=organizationalUnit)";
results = ctx.search(searchBase, filter, searchControls);
while (results.hasMore()) {
SearchResult searchResult = results.next();
Attributes attributes = searchResult.getAttributes();
Attribute attribute = attributes.get("ou");
String ou = (String) attribute.get();
System.out.println(ou);
}
ctx.close();
} catch (NamingException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,替换以下变量:
- ldapURL:AD域服务器地址和端口号
- ldapUser:用于查询AD域的LDAP用户的DN
- ldapPassword:用于查询AD域的LDAP用户的密码
- searchBase:要搜索的AD域的基本DN
该程序连接到AD域并搜索用户和组织。它使用过滤器来限制搜索结果,只搜索用户和组织单位对象。它还使用SearchControls对象来设置搜索范围。
对于每个搜索结果,程序从属性中提取cn或ou,并将其打印到控制台上。
请注意,此代码需要在Java应用程序中包含JNDI API类路径。如果您使用Maven或Gradle之类的构建工具,则可以将以下依赖项添加到项目中:
```
<dependency>
<groupId>com.sun.jndi</groupId>
<artifactId>ldap</artifactId>
<version>1.2.1</version>
</dependency>
```