How to bulk import / migrate contacts into Microsoft Exchange

Latest Questions

postmaster & search
Do you know anything about importing contacts into an Exchange server?

One of my customers wants me to build a contacts ("address book") migration tool for CommuniGate to Exchange. I've got the CommuniGate side covered (it turns out you can export CG contacts with IMAP in vCard

But I am at a loss for how to import vcards for multiple users into Exchange. Google is full of articles about individual users importing vcards using Outlook but I can't find anything about a command-line utility that does something like this:

<import> <user> <vcard>

You'd think that every mail server would have something like this and most of the ones I have worked with do have it.

EQ Admin

EQ Forum Admin
Staff member
There are some third party apps, but a well crafted CSV file and csvde.exe are a good way to go.


IMAP Tools
Does importing contacts through csvde result in personal contact or global ones? I've found this about csvde:



contact,Aaron Adams,"CN=Aaron Adams,OU=Category, OU=Distribution, DC=Domain, DC=com", aadams,,,{26491CFC-9E50-4857-861B-0CB8DF22B5D7},

CSVDE -F CONTACTS.CSV -R "(objectclass=contact)"

How to use Csvde to import contacts and user objects into Active Directory

This says to me that csvde is creating global (not personal) contacts in Active Directory. :mad:

That's not what the customer wants as he needs to migrate each CommuniGate user's personal address book to that user's personal addressbook on Exchange. Not load a global address book on Exchange.

The only thing I have come up with in Google searches is how a user can import a vcard into his Outlook address book.

Is there a way to load an Exchange user's personal address book from the server? Or is that info stored in a PST file on the user's PC?



IMAP Tools
I have asked the customer to clarify his requirements by answering the following questions.

Do you want to migrate contact information from the Communigate address book in LDAP to the Exchange address book in Active Directory?

Or do you want to migrate contacts from each Communigate user's personal address book ("contacts mailbox") to the user's Outlook personal address book?


IMAP Tools
1.) There are no existing Microsoft utilities which permit an administrator to import contacts for multiple users. Users can import them using the Import/Export tool in Outlook but it is a manual process.

2.) It is possible to develop a script using PowerShell to load contacts for multiple Outlook users. According to Microsoft's tech bulletins you must first create a PST file with a user's contacts and then execute a 'New-MailboxImportRequest' command for each user.


You can try the below given cmdlet to bulk import/migrate contacts into MSExchange :

Import-Csv .\ExternalContacts.csv|
foreach-object{if (Get-MailContact -anr $ {write-host $ 'is a duplicate entry!!!'}
else {New-MailContact -Name $_.Name -DisplayName $_.Name -ExternalEmailAddress $_.ExternalEmailAddress -FirstName $_.FirstName -LastName $_.LastName}

and Export-Mailbox -Identity UserB -IncludeFolders ‘\Contacts’ -TargetFolder Backup -TargetMailbox UserA


IMAP Tools
Are those the only fields supported in the csv fields or can you add fields like telephone, postal address, company name, etc? If so can someone point me to documentation so I can build a vCard to csv map?