Načítání dat z Active Directory

Občas člověk potká krásné kusy, které kdysi napsal a pak na ně zapomněl. Je na čase je vytáhnout zase ven – tentokráte načítání dat z Active Directory.

Komentovat kód asi není příliš třeba, nejzajímavější je řádek Cmd.CommandText, kde se definuje SQL příkaz, pomocí kterého si člověk načte zajímavá data. Takže jediné co zbývá je zjistit, v jakých sloupcích se skrývají příslušná data v AD. A pak už je to celé hračka. Dokument se najde v adresní knize v pohledu ($Users) a aktualizuje na základě AD.

 
Dim session As New NotesSession Dim db As NotesDatabase Dim view As NotesView Dim doc As NotesDocument Dim Con As Variant Dim Cmd As Variant Set db = session.CurrentDatabase Set view = db.GetView( "($Users)") Set Con = CreateObject("ADODB.Connection") Set Cmd = CreateObject("ADODB.Command") Con.Provider = "ADsDSOObject" Con.Open "Active Directory Provider" Cmd.ActiveConnection = Con Cmd.CommandText = "SELECT sn,givenName,department,physicalDeliveryOfficeName, telephoneNumber,mobile FROM 'LDAP://OU=YourOUName,DC=int, DC=YourDCName,DC=YourCountry' WHERE objectCategory='person' AND objectClass='user' AND physicalDeliveryOfficeName<>'x' ORDER BY sn" Set RS = Cmd.Execute While Not RS.EOF LastName = RS("sn") FirstName = RS("givenName") Department = RS("department") Office = RS("physicalDeliveryOfficeName") Phone = RS("telephoneNumber") Mobile = RS("mobile") Set doc = view.GetDocumentByKey( LastName + " " + FirstName, True) If Not( doc Is Nothing) Then doc.Department = Department doc.Location = Office doc.OfficePhoneNumber = Phone doc.CellPhoneNumber = Mobile Call doc.Save( True,True) End If RS.MoveNext Wend RS.Close Set RS = Nothing Set Cmd = Nothing Con.Close Set Con = Nothing
This LotusScript was converted to HTML using the ls2html routine,
provided by Julian Robichaux at nsftools.com.

Leave a Reply