Outlook 2010 Contact Field Move / Migrate

Switching mobile voice providers / approach / technology can be a bear.

One problem I’ve experienced is when certain fields in “Contacts” are used preferentially to others on different handset platforms. That is to say one handset is putting additional numbers users add for a contact into a field that a different handset does not use.

In this situation you basically need to move numbers from one field to another, wholesale, across a user’s entire contacts list.

Obviously doing this manually would be crazy, specially if you have a large userbase.

In situations like these one need look no further than the poweful capabilities of PowerShell, a tool well capable of resolving this otherwise tricky problem in the blink of an eye.

To achieve this who process you will only need to follow three simple steps;

1. Copy and paste the simple code between the two lines below into notepad and save it with an extention of “.ps1”.


$outlook = new-object -com outlook.application
$contacts = $outlook.Session.GetDefaultFolder(10)
$contacts.Items | % { if($_.Business2TelephoneNumber -eq “”) { $_.Business2TelephoneNumber = $_.OtherTelephoneNumber; $_.OtherTelephoneNumber = “”; $_.save() } }


2. Edit the script to match your environment.
(In the case of the above example we moved the numbers from “Other” to “Business2” as “Business2” was both unused by any user and fully recognised by Windows 7 Phone. “Other” had been used by our previous Blackberrys, but is not recognised by Windows 7 Phone. As you can probably tell the script does check if “Business2” is empty first, and then copies the number from “Other” and finally deletes the number from “Other” if it was copied)

3. Run the script when logged into the user’s desktop, or get the user to run the script themselves once they are logged in.

It really is that simple!

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.