java ad 添加用户组_在AD中创建用户并将用户加入到AD组中
时间: 2024-03-17 21:42:48 浏览: 216
管理用户环境简介-win2003活动目录AD域扩展组策略
在AD中创建用户并将用户加入到AD组中,可以使用Java的LDAP技术来实现。以下是一个示例代码:
```java
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.*;
import java.util.Hashtable;
public class LDAPExample {
public static void main(String[] args) {
// LDAP连接信息
String ldapUrl = "ldap://your-ldap-server:389";
String ldapUsername = "your-ldap-username"; // 可以为空,如果匿名访问
String ldapPassword = "your-ldap-password"; // 可以为空,如果匿名访问
String ldapBaseDn = "DC=your-domain,DC=com";
// 用户信息
String username = "new-user";
String password = "new-password";
// 组信息
String groupName = "new-group";
// LDAP属性设置
Hashtable<String, Object> env = new Hashtable<>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldapUrl);
if (ldapUsername != null && !ldapUsername.isEmpty()) {
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, ldapUsername);
env.put(Context.SECURITY_CREDENTIALS, ldapPassword);
}
try {
// 连接LDAP服务器
DirContext context = new InitialDirContext(env);
// 创建新用户
Attributes userAttrs = new BasicAttributes();
userAttrs.put("objectClass", "user");
userAttrs.put("sAMAccountName", username);
userAttrs.put("userPrincipalName", username + "@" + ldapBaseDn);
userAttrs.put("userAccountControl", Integer.toString(512)); // 启用账户
userAttrs.put("unicodePwd", password.getBytes("UTF-16LE"));
context.createSubcontext("CN=" + username + "," + ldapBaseDn, userAttrs);
// 创建新组
Attributes groupAttrs = new BasicAttributes();
groupAttrs.put("objectClass", "group");
groupAttrs.put("sAMAccountName", groupName);
context.createSubcontext("CN=" + groupName + "," + ldapBaseDn, groupAttrs);
// 将用户加入组中
ModificationItem[] mods = new ModificationItem[1];
mods[0] = new ModificationItem(DirContext.ADD_ATTRIBUTE,
new BasicAttribute("member", "CN=" + username + "," + ldapBaseDn));
context.modifyAttributes("CN=" + groupName + "," + ldapBaseDn, mods);
System.out.println("User " + username + " added to group " + groupName);
// 关闭LDAP连接
context.close();
} catch (NamingException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
注意:需要替换代码中的 LDAP连接信息、用户信息和组信息为实际的值。
阅读全文