quinta-feira, 3 de março de 2011

Conexão Active Directory (AD)

Para fazer uma conexão ao Active Directory (AD), é necessário um usuário com permissão de acesso ao AD, não será explicado nesse post como é feita a criação desse usuário.

Você deve criar uma conexão OLE DB, para isso abra o editor de script e siga os passos.


Escolha o provedor "OLE DB Provider for Microsoft Directory Services".


Informe o endereço do AD, bem como o usuário e senha criados anteriormente. Clique em Testar conexão.


Após a criação conforme indicado acima, você verá a seguinte linha de conexão.

OLEDB CONNECT TO [Provider=ADsDSOObject;User ID=Dominio\Usuário;Encrypt Password=False;Data Source=LDAP://dominio.com.br;Mode=Read;Bind Flags=0;ADSI Flag=-2147483648] (XPassword is IGGRQZVMODaCWbB);

Depois você pode fazer a extração dos grupos e usuários dos grupos, nesse caso, os grupos são pré-determinados.

Veja exemplo.


//************* Grupos AD ****************//
FOR each arg in 'Grupo1','Grupo2','Grupo3'

Groups:
LOAD
distinguishedName as GroupKey,
cn as Grupo;
SQL select
distinguishedName,
cn
FROM 'LDAP://DC=dominio,DC=com, DC=br'
WHERE objectCategory='group' AND cn ='$(arg)';

//grava as informações do Grupo
Store Groups into Groups_$(arg).qvd;

//Alimenta a variável com o valor do campo GroupKey
LET vGK = peek('GroupKey');
//Exibe o nome do Grupo e Chave do Grupo
TRACE GRUPO - $(arg) - $(vGK);

//Busca os usuários do Grupo
Users:
LOAD
'$(vGK)' as GroupKey,
upper(sAMAccountName) as LanID,
cn as Name;
SQL SELECT
sAMAccountName,
cn
FROM 'LDAP://DC=dominio,DC=com, DC=br'
WHERE memberOf='$(vGK)';

//grava os usuários do Grupo
Store Users into \Users_$(arg).qvd;

//Elimina as tabelas do arquivo qvw
drop table Users;
drop table Groups;
NEXT arg

Nenhum comentário:

Postar um comentário