Ir ao conteúdo
  • Cadastre-se
Adelmo Alves

Desativação de conta de usuário no AD via aplicação java

Recommended Posts

Pessoal,

Estou tentando desativar uma conta de usuário no AD através de uma aplicação em java. Passei um bom tempo pesquisando e já consigo me autenticar no AD via protocolo LDAP e agora preciso somente modificar um atributo para desativar a conta de usuários que eu desejar.

Para modificar qualquer atributo eu utilizo o metódo abaixo:

// -------------------------------------------------------------------------
// Modifica um atributo de um usuário/group no AD
// @param ldapContext
// @param userCN Ex: "CN=usuario, OU=DClick, DC=domain, DC=com, DC=br"
// @param attribute Ex: "unicodePwd"
// @param value Valor do attributo
// -------------------------------------------------------------------------
private void modifyAdAttribute(LdapContext ldapContext,
String userCN,
String attribute,
Object value) throws NamingException{
ModificationItem[] modificationItem = new ModificationItem[1];
modificationItem[0] = new ModificationItem(DirContext.REPLACE_ATTRIBUTE,
new BasicAttribute(attribute, value));
ldapContext.modifyAttributes(userCN, modificationItem);
}

E para desativar a conta de usuário no AD, após uma longa pesquisa encontrei um atributo chamado userAccountControl que parece ajudar nesse sentido. Segue abaixo o metodo para desativar a conta de usuário:

// -------------------------------------------------------------------------
// Bloquear um usuário do AD
// @param ldapContext
// @param userDN Ex: "CN=usuario, OU=DClick, DC=domain, DC=com, DC=br"
// -------------------------------------------------------------------------
public void lockAccount(LdapContext ldapContext,
String userDN) throws NamingException,
UnsupportedEncodingException,
IOException {

modifyAdAttribute(ldapContext, userDN, "userAccountControl", UF_NORMAL_ACCOUNT + UF_ACCOUNTDISABLE);
System.out.println("Account " + userDN + " locked");

}

Porém eis que vem meu problema, na hora da desativação da conta dá o seguinte erro:

javax.naming.directory.InvalidAttributeValueException: Malformed 'userAccountControl' attribute value;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro verifique se no registro do windows possui este atributo 'userAccountControl' lendo a ultima linha que você postou o erro diz que este atributo é invalido, Se o registro possuir este atributo verifique se o seu software tem permição para modificalo (Lê-se execute-o como Administrador).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×