' AddContactsFromUsers.vbs
' Written 6-7-5 Daryl Sirota of System Source - dsirota@syssrc.com
' All rights reserved, please do not redistribute without permission from author

'Global variables
' ------------------------------------------------------------------------------
' Begin of user updateable section
' ------------------------------------------------------------------------------
const TargetOU			="OU=Contacts,DC=mydomain,DC=local"
Const Logfile			="Logfile.txt"


' ------------------------------------------------------------------------------
' End of user updateable section
' ------------------------------------------------------------------------------

Dim oContainer
Dim FileSystem
Public LogFil,Outputfile,TotUsers

Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set logFil     = FileSystem.CreateTextFile(LogFile, True)

LogFil.Writeline "Program started " & date & " " & time
TotUsers=0
n=0
n1=0
'--- Main Routine ---
Call FixUsers    

Logfil.close
wscript.echo "Program Complete."

set logfil = nothing
set filesystem = nothing


'-- End of Main Routine


'-------------------
Sub FixUsers()

n=0
n1=0
rc=0
Set oRoot = GetObject("LDAP://rootDSE")
sDomain = oRoot.Get("defaultNamingContext")
Set oDomain = GetObject("LDAP://" & sDomain)
sBase = "<" & oDomain.ADsPath & ">"
sFilter = "(&(objectCategory=person)(objectClass=user)(mail=*))"
sAttribs = "name,sn,givenname,displayname"
sDepth = "subTree"

sQuery = sBase & ";" & sFilter & ";" & sAttribs & ";" & sDepth
Set conn = CreateObject("ADODB.Connection")
conn.Open "Data Source=Active Directory Provider;Provider=ADsDSOObject"
Set rs = conn.Execute(sQuery)

On Error Resume Next

With rs
    Do While Not .EOF
     	wscript.echo RS("Name") & " - " & rS("DisplayName")
    	n=n+1
    	If True Then
	    	Set objContainer = GetObject("LDAP://" + TargetOU)

' Create a Contact.
			Name=rs("name")
			OBJName="CN=Contact-" & Name
			First=rs("givenname")
			last=rs("sn")
			Set objContact = objContainer.Create("contact", objName)
			objContact.Put "displayName", Name
			objContact.put "sn",last
			objContact.put "givenname",first
			objContact.SetInfo
			WScript.Echo Err.Number
			If Err.Number=0 Then 
				n1=n1+1
				WScript.Echo "Created " & rs("name")
				Logfil.Writeline("Created " & rs("name"))
				Set objRecip = objContact
				'Dim FwdAddress As String
				FwdAddress = "smtp:" + rs("name") + "@bla.com"
				objRecip.MailEnable FwdAddress
				objContact.SetInfo
			End If

		End If
		
       .MoveNext
    Loop
End With

Set ObjRecip=Nothing
Set Objcontact=nothing
set rs=nothing

wscript.echo "Uusers examined : " & n
wscript.echo "Contacts Created:" & n1
logfil.writeline  "Users examined: " & n
logfil.writeline  "Contacts Created:" & n1

End Sub
'----------------------



