Ir ao conteúdo
  • Cadastre-se

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


Adelmo Alves

Posts recomendados

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;
Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...

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).

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...