#
# add_contacts.ps1
#
# Written by Carol Wapshere, October 2008
#
# Use to create one or more contacts.
# If the contact exists already the create command will throw an error, but the attributes will still be updated.
#
# Instructions:
#
# 1. Modify the add_contacts.csv file to include information about the contacts to add.
# The file must have a header row and must include the following fields:
# displayName,sn,givenName,name,mail,telephoneNumber,facsimileTelephoneNumber,mobile,homePhone,streetAddress,company
#
# 2. Open the Exchange Management Shell
#
# 3. CD to C:\scripts and run add_contacts.ps1.
cat add_contacts.csv > unicode.csv # make utf8
import-csv unicode.csv | foreach {
write-host
write-host
write-host "Creating contact for " $_.displayName
New-MailContact -ExternalEmailAddress $_.mail -DisplayName $_.displayName -Name $_.name -OrganizationalUnit 'bbhfgg.local/BBH/Contacts' -FirstName $_.givenName -LastName $_.sn
$ldapstring = "LDAP://CN=" + $_.name + ",OU=Contacts,OU=BBH,dc=bbhfgg,dc=local"
write-host $ldapstring
$contact = [ADSI]$ldapstring
write-host
write-host "Setting AD attributes..."
if ($_.displayName -ne "")
{
write-host " displayName: " $_.displayName
$contact.Put("displayName", $_.displayName)
}
if ($_.sn -ne "")
{
write-host " sn: " $_.sn
$contact.Put("sn", $_.sn)
}
if ($_.givenName -ne "")
{
write-host " givenName: " $_.givenName
$contact.Put("givenName", $_.givenName)
}
if ($_.company -ne "")
{
write-host " company: " $_.company
$contact.Put("company", $_.company)
}
if ($_.telephoneNumber -ne "")
{
write-host " telephoneNumber: " $_.telephoneNumber
$contact.Put("telephoneNumber", $_.telephoneNumber)
}
if ($_.facsimileTelephoneNumber -ne "")
{
write-host " facsimileTelephoneNumber: " $_.facsimileTelephoneNumber
$contact.Put("facsimileTelephoneNumber", $_.facsimileTelephoneNumber)
}
if ($_.mobile -ne "")
{
write-host " mobile: " $_.mobile
$contact.Put("mobile", $_.mobile)
}
if ($_.homePhone -ne "")
{
write-host " homePhone: " $_.homePhone
$contact.Put("homePhone", $_.homePhone)
}
if ($_.streetAddress -ne "")
{
write-host " streetAddress: " $_.streetAddress
$contact.Put("streetAddress", $_.streetAddress)
}
$contact.SetInfo()
} | out-file -filepath "c:\scripts\add_contacts.log" -encoding "UNICODE"