Olá pessoal.
Há uns 2 ou 3 anos atrás, precisei recuperar um usuário deletado no AD – utilizei o ldp.exe. Semana passada, precisei novamente. Então, achei bacana compartilhar. Vamos lá.
É possível recuperar não só usuários, como também objetos do AD. Sempre que precisei, utilizei a ferramenta citada acima – Ldp.exe, mas também é possível realizar este procedimento utilizando o ADExplorer, da Sysinternals.
Bom, antes de começar é importante entender como funciona a “exclusão” de objetos no AD. Quando um objeto é deletado, ele ainda continua no banco de dados – ou seja, não é deletado fisicamente. Ele vai para um Tombstone (conteiner CN=Deleted Objects).
Este Tombstone mantém os usuários por 180 dias, no Windows 2003 SP1 e 2008 e 60 dias no Windows 2003.
Agora que sabemos como funciona o processo, mãos a obra:
1º) Execute a ferramenta Ldp.exe (presente na maioria das versões do Windows)
2º) No menu Connection, clique em connect
Informe o Domain Controller
3º) Novamente no menu Connection, blique em Bind para autenticar-se
Se necessário (caso não esteja realizando este procedimento com credenciais elevadas) informe o usuário e senha do Administrador
Apos autenticar, aparecerá o “log” da validação
———–
0 = ldap_set_option(ld, LDAP_OPT_ENCRYPT, 1)
res = ldap_bind_s(ld, NULL, &NtAuthIdentity, NEGOTIATE (1158)); // v.3
{NtAuthIdentity: User=’NULL’; Pwd=<unavailable>; domain = ‘NULL’}
Authenticated as: ‘TESTE\Administrator’.
———–
4º) No menu Options, clique em Controls para selecionar a opção de retornar Objetos deletados.
Clique em OK
5º) No menu View, clique em Tree (para exibição em modo “árvore”)
6º) Em Base DN, selecione o Dominio e clique em OK
7º) Na árvore do dominio, navegar até o objeto desejado (em Deleted Objects)
Clicar com o botão direito e selecionar a opção Modify
8º) No campo Edit Entry Attribute, digite isDeleted e marque a opção Delete, em operation. Clique em Enter.
9º) Novamente no campo Edit Entry Attribute, digite distinguishedName e marque a opção Replace. No campo Values, informarcar o DN do objeto (onde será restaurado). Marque a opção Extend e clique em Enter novamente.
Execute os parametros clicando em RUN
Se tiver tudo correto, será exibido no “log”:
———–
***Call Modify…
ldap_modify_ext_s(ld, ‘CN=deleted userADEL:5e0c78a7-e677-4d26-953c-c550332cc647,CN=Deleted Objects,DC=teste,DC=interno’,[2] attrs, SvrCtrls, ClntCtrls);
Modified “CN=deleted userADEL:5e0c78a7-e677-4d26-953c-c550332cc647,CN=Deleted Objects,DC=teste,DC=interno”.
———–
Pronto! Objeto recuperado.
IMPORTANTE: Deverá ser preenchido todas as informações do usuário.
Este procedimento tem a finalidade de recuperar o mais importante, o SID do objeto!
É isso.
[ ]´s
Errei em algum lugar, a linha de comando retornou uma resposta.
***Call Modify…
ldap_modify_s(ld, ‘CN=Daniel DantasADEL:3e901514-0144-4bde-9937-1cb63f8627e0,CN=Deleted Objects,DC=amsecurity,DC=com,DC=br’,[2] attrs);
Error: Modify: Este atributo não existe.
Server error: 00000057: LdapErr: DSID-0C090B73, comment: Error in attribute conversion operation, data 0, v1772
———–
Tive o mesmo problema:
———–
***Call Modify…
ldap_modify_ext_s(ld, ‘CN=Luis Fernando CruzADEL:8f604438-65b4-4b8b-aebe-d77698f2a24d,CN=Deleted Objects,DC=decorlux,DC=local’,[4] attrs, SvrCtrls, ClntCtrls);
Error: Modify: No Such Attribute.
Server error: 00000057: LdapErr: DSID-0C090B8A, comment: Error in attribute conversion operation, data 0, v1db1
Error 0x57 The parameter is incorrect.
———–
Saudções!!
Cara muito bom o seu post. mas estou com um problema aqui quando tento recuperar. Ele esta aparecendo o seguinte erro:
***Call Modify…
ldap_modify_ext_s(ld, ‘CN=Luciano AlvesADEL:84b6a431-4e7d-44ad-afae-77fb281a148b,CN=Deleted Objects,DC=dall,DC=com,DC=br’,[2] attrs, SvrCtrls, ClntCtrls);
Error: Modify: Unwilling To Perform.
Server error: 00002077: SvcErr: DSID-031B0D85, problem 5003 (WILL_NOT_PERFORM), data 0
Sabe dizer que erro é esse?
quando vc for restaurar o usuario na parte onde voce for definir o “distinguishedName” em values coloque o nome do usuario (login) como era anteriormente mais o diretorio onde vc quer restaurar. coloque no diretorio “user” só por garantia.