SBS2008: import pictures in Active Directory

H Experts,

Since we have Office 2010; there is a nice feature with pictures from everybody.

I know you can import pictures in AD, but how do I do it?

Can't find any easy solution for it, I already have the attribute ThumbnailPhoto in AD.
Someone?
trivinAsked:
Who is Participating?
 
FemSteenkampCommented:
here is a good writeup and sample code to upload / downlod pictures
http://www.arricc.net/active-directory-photos-sharepoint.php

and here to use outlook 2010 tools instead of scripts
http://msexchangeteam.com/archive/2010/03/10/454223.aspx


0
 
trivinAuthor Commented:
Perfect!
The second link, I already tried, but it's for exchange 2010.
The first link works perfect, just run this vb script, and change the path.

Thankyou very much!!!


Const ForReading = 1
InDir = "H:\adpictures"
Set fso = CreateObject("Scripting.FileSystemObject")
set oIADS = GetObject("LDAP://RootDSE")
strDefaultNC = oIADS.Get("defaultnamingcontext")
Set theConn = CreateObject("ADODB.Connection")
theConn.Provider = "ADsDSOObject"
theConn.Open "ADs Provider"
Set theCmd  = CreateObject("ADODB.Command")
theCmd.ActiveConnection = theConn
Set objRecordSet = CreateObject("ADODB.Recordset")
For Each tFile In fso.GetFolder(InDir).Files
    tName = tFile.Name
    'Gets the persons Name from the file by stripping the extention.
    tName = Left(tName, InStrRev(tName,".")-1)
    'You may need to tweak this bit depending on your naming conventions.
    strQuery = "<LDAP://" & strDefaultNC & ">;" & _
                              "(&(objectClass=person)(name=" & tName & "));name,adspath;subtree"
    theCmd.CommandText = strQuery
    Set objRS = theCmd.Execute
    If objRS.RecordCount = 0 Then
      MsgBox "Can't find account for " & tName
    Else
      Set objUser = GetObject(objRS("adspath"))
      ObjUser.Put "thumbnailPhoto", ReadByteArray(tFile.Path)
      ObjUser.SetInfo
    End If
Next
'Stolen from http://www.ericphelps.com/q193998/index.htm
Function ReadByteArray(strFileName)
    Const adTypeBinary = 1
    Dim bin
    Set bin = CreateObject("ADODB.Stream")
    bin.Type = adTypeBinary
    bin.Open
    bin.LoadFromFile strFileName
    ReadByteArray = bin.Read
End Function

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.