Eu tenho um Active Directory em execução Samba 4.6.3
, em um servidor com Debian Jessie
. Em um PC com Windows 7 (cliente AD) instalei o RSAT e a partir daí gerencio o servidor usando uma conta de administrador, mas agora preciso exportar a lista completa de usuários em um formato legível, de preferência.csv
Usando o RSAT (do cliente em Windows) até agora só consegui exportar todos os objetos dentro de uma OU
(unidade organizacional), UM DE OU
CADA VEZ, seja o container do OU
usuário ou o container do PC, ou seja, eu poderia fazer o que Eu quero (exportar a lista completa de usuários) repetindo o processo para cada OU
contêiner de usuário, mas tenho muitos OU
contêineres de usuário.
Pergunta: Existe alguma forma de exportar a lista completa de usuários, com nome e sobrenome, com seus correspondentes OU
de forma rápida e sem ter que fazer esse trabalho iterativo?
PD: A resposta não precisa se limitar ao cliente no Windows com o RSAT, também pode ser no servidor Samba
Solução bash..peças...
Comece extraindo o conteúdo do AD:
O "-W" força um prompt interativo para a senha do usuário. Você não quer isso no histórico de comandos. Se você estiver combinando isso em um script, poderá usar o "-w" e proteger o acesso por senha.
Agora que o conteúdo foi extraído para um arquivo de texto, podemos usar o processamento de texto para converter para CSV ou qualquer outro formato que desejarmos.
ldif estão agrupados, então o primeiro passo seria desempacotá-los
Aqui redefinimos o registro para consistir em um bloco de texto com duas terminações de linha e um campo para consistir em um bloco de texto com apenas uma terminação de linha e um espaço. Em seguida, processamos cada linha como um campo, juntando as curtidas que são ldif agrupadas ("\n ") em um único campo. Agora que temos um ldif desempacotado, a etapa final é converter de ldif para csv.
Este é um script de conversão awk significativamente simplificado que converterá o ldif desempacotado em csv.
É possível extrair o dn para os usuários ou ir atrás dos campos adicionais que são necessários. Apenas estenda o script final do awk.