Office 365 and no On Premises Exchange

Most, if not all, of my Office 365 migrations to this point in my career have involved migrating Exchange or Lotus Notes to Office 365’s Exchange Online. Recently I worked on a migration that involved a third-party to Office 365 mail move. I wanted to provide a lessons learned from the migration, as well as a list of what could have been done better (i.e. things to look out for) in this blog entry. The intent is to potentially help anyone who is doing a similar move to Office 365.

The Small Things

  • Email aliases / SMTP Addresses
  • Calendars
  • Organizational forms

Email aliases / SMTP Addresses

So. Plain environment. Exchange is non-existent. DirSync is available. Lots of attributes are missing. We need to create custom email addresses that match what was set on an external provider’s email system. What tools can we use to do this? PowerShell and ADModify. Why ADModfy? Why not all Powershell (which we can do as well). Simply put, because ADModify gives a GUI interface for more novice admins.

First Step
Creating a ‘mailnickname’ value in AD. The client needed to use the first initial and last name to create the value we needed.

import-module activedirectory
Add-PSSnapin Quest.ActiveRoles.ADManagement

$names = get-aduser -filter * -Properties *
foreach ($line in $names) {
	if ($line.givenname -ne $null) {
		if ($line.givenname -ne $null) {
			$name = $line.DistinguishedName
			$n = $line.givenname
			$f = $n[0]
			$surname = $line.surname
			$mailnickname = $f+$surname
#			get-aduser $line | set-aduser -properties * -mailnickname $mailnickname
			Set-QADUser -identity $name -ObjectAttributes @{mailnickname = $mailnickname} 

The above script uses a set of PowerShell cmdlets that are hard to find these days. The tool was originally created by Quest. Quest has since been purchased by Dell and the tools seemed to have been removed. However, after a bit of searching, I was able to find the tools here for downloading. Download the tools on whatever machine you are going to use for management. Any script utilizing the tools should use the Add-PSSnapin Quest.ActiveRoles.ADManagement one liner before executing the commands.

On to ADModify

Once each user account was tagged with a MailNickname, we can now use ADModify to utilize that value for assigning an SMTP address.

Depending on your Server OS, you may need to run this as an Administrator account:


Once the program opens up, click on ‘Modify Attributes’:


Once the tool was opened, we selected the domain, and OU where the users were and added then to the list of the right. Then click ‘Next’:


Once the properties editor comes up, we selected the ‘Email Addresses’ tab. Checked ‘Add SMTP Address’ and ‘Set As Primary’. For the format, we used %’mailNickName’
. Then clicked ‘Go!’:


After all the AD attributes are replicated in internal AD, run a dirsync to get the attributes into Office 365.


Recently I wrote an article on how to add the Organizational Forms Library to Office 365. With this client, we decided not to go this route due to the lack of experience with Outlook forms, the time it would take to recreate a hundred forms as well as the ease of use of the solution we found. Several vendors have products out there for Outlook forms that provide more flexibility and less complication than a Forms Library in Exchange Online.

Possible Vendors
MAPILAb – Quick Templates for Outlook
Able Bits – Template Phrases for Microsoft Outlook

In the end, the solution they picked enabled them to create templates, share templates and use them like their old email system.

Shared Calendars

As with any migration, there are some options or configuration settings that are not necessarily discussed. Shared Calendars come to mind. While I knew we needed to create the calendars, we had not done a deep dive into the various functions that might be needed for their workflows. We had discussed making the calendars available for external senders (for their hosted CRM solution). However, there were more options that could be configured.

First we examined the default settings for Room Resource Calendar processing:

get-mailbox | where {$_.recipienttypedetails -eq "roommailbox"} | get-calendarprocessing | fl

For the changes, the key was the external message processing. The client also wanted the subject, comments and a few other items tweaked:


To do so, I used this PowerShell one-liner:

Get-Mailbox | where {$_.RecipientTypeDetails -eq "roommailbox"} | Set-CalendarProcessing -AllowConflicts $true -DeleteAttachments $false -DeleteSubject $false -DeleteComments $false -AddNewRequestsTentatively $false -TentativePendingApproval $false -ProcessExternalMeetingMessages $true

Now all the rooms have the same settings for what the client needs. The settings can be validated with the same command:

get-mailbox | where {$_.recipienttypedetails -eq "roommailbox"} | get-calendarprocessing | fl

After changing the calendar processing settings for each room resources, we validated the settings by sending meeting invites from the external source. We verified that the invite was processed, added to the calendar and the information we wanted to stay, was not deleted from the appointment.

Further Reading


One thought on “Office 365 and no On Premises Exchange

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s