Usuário com melhor resposta
Exportar dados do AD para planilha no Excel

Pergunta
-
Olá
Gostaria de saber como exportar dados do AD do server 2003 para uma planilha do excel.
Eu gostaria que ele trazesse da seguine forma na planilha:
Usuario: Alexandre
Membro de: Financeiro_Fin, Administrativo_am, TI.
Eu gostaria que ficasse assim em uma planilha do excel, tem como eu importar de todos os usuarios do AD e inserir numa planilha?
- Editado Fábio JrModerator quarta-feira, 28 de março de 2012 16:06 Título corrigido
Respostas
-
Bom dia,
O script abaixo faz o inverso, traz os grupos e informa quem faz parte do mesmo.
Const ADS_SCOPE_SUBTREE = 2
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set objDSE = GetObject("LDAP://rootDSE")
Set OutPutFile = FileSystem.CreateTextFile("Lista_de_Grupos.txt", True)strDominio = objDSE.Get("defaultNamingContext")
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnectionobjCommand.Properties("Page Size") = 3000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREEobjCommand.CommandText = _
"SELECT name,description,distinguishedname,instanceType FROM 'LDAP://" & strDominio & "' WHERE objectCategory='group'"Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
nome = objRecordSet.Fields("name").Value
descricao = objRecordSet.Fields("description").Value
cn = objRecordSet.Fields("distinguishedname").Value
OutPutFile.WriteLine nome & ";" & cn
pegaGrupo cn
objRecordSet.MoveNext
LoopFunction pegaGrupo(nomegrupo)
on error resume next
Set objGroup = GetObject("LDAP://" & nomegrupo)
objGroup.GetInfoarrMemberOf = objGroup.GetEx("member")
OutPutFile.WriteLine "============= MEMBROS DO GRUPO " & nome & " ================"
For Each strMember in arrMemberOf
OutPutFile.WriteLine strMember
NextOutPutFile.WriteLine " "
End Function
Rafael S. AMARAL
U. P. Mackenzie- Editado Rafael S. AMARAL quinta-feira, 29 de março de 2012 13:10
- Sugerido como Resposta Fábio JrModerator segunda-feira, 2 de abril de 2012 19:16
- Marcado como Resposta Fábio JrModerator quarta-feira, 4 de abril de 2012 13:07
Todas as Respostas
-
-
Este formato que vc propõem não é bem padrão excel.
Tente utilizar a ferramenta LDIFDE, ela gera o arquivo e depois vc pode importar para o excel.
Ref.:
LDIFDE - Exportar / importar dados de Active Directory
http://support.microsoft.com/kb/555634/pt-br
Fábio de Paula Junior
-
Bom dia,
O script abaixo faz o inverso, traz os grupos e informa quem faz parte do mesmo.
Const ADS_SCOPE_SUBTREE = 2
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set objDSE = GetObject("LDAP://rootDSE")
Set OutPutFile = FileSystem.CreateTextFile("Lista_de_Grupos.txt", True)strDominio = objDSE.Get("defaultNamingContext")
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnectionobjCommand.Properties("Page Size") = 3000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREEobjCommand.CommandText = _
"SELECT name,description,distinguishedname,instanceType FROM 'LDAP://" & strDominio & "' WHERE objectCategory='group'"Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
nome = objRecordSet.Fields("name").Value
descricao = objRecordSet.Fields("description").Value
cn = objRecordSet.Fields("distinguishedname").Value
OutPutFile.WriteLine nome & ";" & cn
pegaGrupo cn
objRecordSet.MoveNext
LoopFunction pegaGrupo(nomegrupo)
on error resume next
Set objGroup = GetObject("LDAP://" & nomegrupo)
objGroup.GetInfoarrMemberOf = objGroup.GetEx("member")
OutPutFile.WriteLine "============= MEMBROS DO GRUPO " & nome & " ================"
For Each strMember in arrMemberOf
OutPutFile.WriteLine strMember
NextOutPutFile.WriteLine " "
End Function
Rafael S. AMARAL
U. P. Mackenzie- Editado Rafael S. AMARAL quinta-feira, 29 de março de 2012 13:10
- Sugerido como Resposta Fábio JrModerator segunda-feira, 2 de abril de 2012 19:16
- Marcado como Resposta Fábio JrModerator quarta-feira, 4 de abril de 2012 13:07
-
Bom dia,
O script abaixo faz o inverso, traz os grupos e informa quem faz parte do mesmo.
Const ADS_SCOPE_SUBTREE = 2
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set objDSE = GetObject("LDAP://rootDSE")
Set OutPutFile = FileSystem.CreateTextFile("Lista_de_Grupos.txt", True)strDominio = objDSE.Get("defaultNamingContext")
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnectionobjCommand.Properties("Page Size") = 3000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREEobjCommand.CommandText = _
"SELECT name,description,distinguishedname,instanceType FROM 'LDAP://" & strDominio & "' WHERE objectCategory='group'"Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
nome = objRecordSet.Fields("name").Value
descricao = objRecordSet.Fields("description").Value
cn = objRecordSet.Fields("distinguishedname").Value
OutPutFile.WriteLine nome & ";" & cn
pegaGrupo cn
objRecordSet.MoveNext
LoopFunction pegaGrupo(nomegrupo)
on error resume next
Set objGroup = GetObject("LDAP://" & nomegrupo)
objGroup.GetInfoarrMemberOf = objGroup.GetEx("member")
OutPutFile.WriteLine "============= MEMBROS DO GRUPO " & nome & " ================"
For Each strMember in arrMemberOf
OutPutFile.WriteLine strMember
NextOutPutFile.WriteLine " "
End Function
Rafael S. AMARAL
U. P. Mackenzie
Cara vc é show!!! isso é oq eu precisava... mt obrigado. -
Bom dia,
O script abaixo faz o inverso, traz os grupos e informa quem faz parte do mesmo.
Const ADS_SCOPE_SUBTREE = 2
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set objDSE = GetObject("LDAP://rootDSE")
Set OutPutFile = FileSystem.CreateTextFile("Lista_de_Grupos.txt", True)strDominio = objDSE.Get("defaultNamingContext")
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnectionobjCommand.Properties("Page Size") = 3000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREEobjCommand.CommandText = _
"SELECT name,description,distinguishedname,instanceType FROM 'LDAP://" & strDominio & "' WHERE objectCategory='group'"Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
nome = objRecordSet.Fields("name").Value
descricao = objRecordSet.Fields("description").Value
cn = objRecordSet.Fields("distinguishedname").Value
OutPutFile.WriteLine nome & ";" & cn
pegaGrupo cn
objRecordSet.MoveNext
LoopFunction pegaGrupo(nomegrupo)
on error resume next
Set objGroup = GetObject("LDAP://" & nomegrupo)
objGroup.GetInfoarrMemberOf = objGroup.GetEx("member")
OutPutFile.WriteLine "============= MEMBROS DO GRUPO " & nome & " ================"
For Each strMember in arrMemberOf
OutPutFile.WriteLine strMember
NextOutPutFile.WriteLine " "
End Function
Rafael S. AMARAL
U. P. Mackenzie
Cara vc é show!!! isso é oq eu precisava... mt obrigado.
Pessoal, esse script me ajudou mt mas ainda preciso de outra informação... como posso fazer ele me trazer o login do usuário ao invés do nome completo??
Tipo jose.silva e não Jose Maria da Silva???
Obrigado!