Avalados por :

Como recuperar todos os funcionários do Active Directory usando um campo personalizado de ID de funcionário

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 5 Vistas
0
Cargando...

Temos um campo AD personalizado chamado "ID do funcionário".

Ele é preenchido com (surpresa!) todos os números de identificação dos funcionários. Todos começam com "99."

Quando configuro uma conexão OLE / Active Directory e digito este comando:

SELECT eMPLOYEEid, SN, GIVENNAME, MAIL, DEPARTMENT, MODIFYTIMESTAMP FROM 'LDAP://dc=mydomain,dc=k12,dc=ga,dc=us' where employeeID = '99*'

O Crystal retorna exatamente 1000 registros.

Nem todos os meus funcionários estão lá.

O que devo mudar para habilitar a devolução DE TODOS os meus funcionários do Active Directory?

Obrigado

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

3 Respuestas

0
Cargando...

Patrick,

Tive que usar VBScript para escrever um arquivo csv e obter as informações de todos... Não sou um especialista em VBScript, mas um colega de trabalho tinha um script que pude modificar para minhas necessidades:

Const ADS_SCOPE_SUBTREE = 2

Set objFSO = CreateObject("Scripting.FileSystemObject")

objFSO.CreateTextFile("UserFile.csv")

Set objFile = objFSO.OpenTextFile("UserFile.csv", 2)

Set objConnection = CreateObject("ADODB.Connection")

Set objCommand = CreateObject("ADODB.Command")

objConnection.Provider = "ADsDSOObject"

objConnection.Open "Active Directory Provider"

Set objCommand.ActiveConnection = objConnection

objCommand.CommandText = "Select EmployeeID, mail from 'LDAP://DC=whatever,DC=us'" & _

" where objectCategory='person' and objectClass='user' and employeeID = ' 99 '"

objCommand.Properties("Page Size") = 10

objCommand.Properties("Timeout") = 30

objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE

objCommand.Properties("Cache Results") = False

Set objRecordSet = objCommand.Execute

objRecordSet.MoveFirst

objFile.WriteLine("EmployeeID,Email")

Do Until objRecordset.EOF

If Not IsNull(objRecordset.Fields("mail").Value) Then

iRec = iRec + 1

objfile.write (objRecordset.Fields("EmployeeID") & ", ")

If InStr(objRecordset.Fields("mail"), "@") = 0 Then

objfile.write (", ")

Else: objfile.write (LCase(Left(objRecordset.Fields("mail"), InStr(objRecordset.Fields("mail"), "@") - 1)) & ", ")

End If

objfile.WriteLine ("")

End If

objRecordset.MoveNext

Loop

objFile.Close

msgbox "¡HECHO!"

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Martha,

Gostaria de saber também. Não encontrei a consulta correta para extrair mais de 1000 registros.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Obrigado por publicar sua solução.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?