Mais uma maneira de importar dados em massa para o Active Directory

Muitas vezes existe a necessidade de cadastrar diversas informações em objetos de usuário no Active Directory, como por exemplo, todos os ramais de cada usuário do domínio.

Importando os dados

Existe  uma maneira muito prática de fazer isso. Solicite ao RH que envie o nome do usuário e o ramal, formate a lista de acordo com o seguinte exemplo:

“Usuario 1”;”55 11 9999 9001”
“Usuario 2”;”55 11 9999 9002”
”Usuario 3”;”55 11 9999 9003”

Salve a lista no arquivo usuarios.txt. Depois crie o arquivo usuarios.bat com a seguinte linha:

for /F “tokens=1,2 delims=;” %%A IN (usuarios.txt) DO dsquery user –name %%A | dsmod user –tel %%B

Note que você fará um for, pegando os tokens 1 e 2 (primeira e segunda coluna), o que determina a divisão das colunas é ; (delims:;). Em cada linha, ele executará (DO) o dsquery para procurar o usuário no AD (-name %%A), note que a variável %%G é tudo que estiver na 1° coluna do .txt, depois usamos o pipe para pegar a saída do dsquery, e alterar o telefone com a variável da segunda coluna/token (-tel %%B).

Vamos para outro exemplo. Você precisa indicar além do ramal, o cargo:

usuarios.txt:

“Usuario 1”;”55 11 9999 9001”;”Analista de recursos humanos”
“Usuario 2”;”55 11 9999 9002”;”Técnico em contabilidade”
”Usuario 3”;”55 11 9999 9003”;”Analista de compras”

usuarios.bat:

for /F “tokens=1,2,3 delims=;” %%A IN (usuarios.txt) DO dsquery user –name %%A | dsmod user –tel %%B –title %%C

Note que criamos mais um token (tokens=1,2,3), e no final do comando, inserimos o parâmetro –title (cargo) usando o próximo token (-title %%C). Note também que os tokens seguem ordem alfabética, você pode utilizar até 26.

Um detalhe, poderiamos utilizar o “dsmod user” para alterar os usuários diretamente sem pesquisar com o “dsquery user”, porém perderiamos um pouco o dinâmismo, já que para indicar qual usuário alterar diretamente no dsmod, teriamos que indicar através da convenção LDAP:

dsmod user “cn=Usuario 1,ou=notebooks,ou=usuarios,dc=dominio,dc=corp” –tel “55 11 9999 9001” –title “Analista de recursos humanos”

Perceba que seria um problema utilizar somente uma linha de .bat para alterar usuários em diferentes OUs. Por exemplo, você armazena usuários de notebooks em uma OU diferente dos usuários de desktops. Usando o dsquery para indicar o usuário, você simplesmente aponta o displayName, que normalmente é único no domínio, e poderá efetuar alterações utilizando apenas uma linha de .bat para todo o domínio, e se quiser, ainda pode utilizar o –filter no dsquery para alterar em todos os domínio de toda uma floresta, apenas com uma linha de .bat.

Conclusão

Foi possível, com este procedimento, efetuar a inclusão de dados em massa para diversos usuário, e o esforço maior provavelmente é a obtenção das listas com os dados desejados. Importante destacar a necessidade de ter a lista com pelo menos uma infomação única para usar como identificador de cada usuário. Lembrando que outra alternativa para este procedimento é o csvde. Acredito que não haja dificuldades maiores entre um e outro, são apenas procedimentos diferentes para um mesmo objetivo.

 

 

http://www.msitpro.com.br/?p=409

Deixe um comentário