How to Deploy Office365ProPlus & OneDrive for Business Click to Run

When I first began to work with Office365 ProPlus click to run I couldn’t get my head around how to deploy Office in a software as a service model and to deploy it in bulk in Enterprise organisations.

It really is quite simple and I hope this post will help people to deploy Office365 ProPlus and OneDrive for Business with ease. 

So to create two distribution points for Office365 Pro Plus and OneDrive for Business we do the following.

Download the Office Deployment tool for Click to Run HERE
We then need to create a configuration file.

#This is the configuration file for OneDrive for Business which will be saved as odfb.xml
#This is the configuration file for Office365 ProPLus which will be saved as office.xml
So we create a folder for each product that contains the Office Deployment tool and run the following command to download the source files.

#Office365 ProPlus
setup.exe /download office.xml

#OneDrive for Business
setup.exe /download odfb.xml

If you do not have Microsoft System Center Configuration Manager and want to deploy it via a batch file you could use a batch file like this.

@echo off
echo /******************************************
echo /* Installing Office 365
echo /******************************************
net use q: \\fileshare
net use q: /delete /yes

For people that are fortunate enough to have Microsoft System Center Configuration Manager. Here is a quick VIDEO on how to add Office365 ProPlus and OneDrive for Business into your Application Catalog.

Orphaned Exchange Online External Contacts preventing users account to sync to Exchange Online.

I recently had a problem with an Exchange Online tenant. There was an external mail contact which was previously synchronised from Active Directory to Exchange Online. So I had deleted the on-premise active directory mail contact but it still existed in Exchange Online. When I tried to delete the contact it gave the following errror message.

The action ‘Remove-MailContact’, ‘Identity’, can’t be performed on the object ‘Sean OFarrell ‘ because the object is being synchronized from your on-premises organization. This action should be performed on the object in your on-premises organization.

To trouble shoot this issue you can do a couple of things to ensure the external contact does not exist in your on premise Active Directory.

  1. Perform a custom search in ADUC: Search Syntax : 
  2. Search the WAAD Mettaverse
  3. Run this command on the Exchange Onpremise management shell
So if after running all of the above steps you cannot find the external contact which is causing the issues. You do the following.
  1. In Exchange Online Run this command : get-mailcontact | fl
  2. Take note of the attribute value: ExternalDirectoryObjectId
  3. In this example the externaldirectoryobjectid is 2cb3d9c7-cb29-439f-8174-6c80dd9fe6e8
  4. Then connect to Windows Azure Ad via Powershell and run this command
    get-msolcontact -objectid 2cb3d9c7-cb29-439f-8174-6c80dd9fe6e8 | remove-msolcontact
Problem solved. Now run a delta sync on your WAAD server and everything will work fine.

Office365 WAAD not deleting filtered Organisational Units

If you you upgraded a Dirsync Server to the newer WAAD sync tool and the original configuration was syncing the full AD forest then when you upgrade to the newer version. You need to perform a full synchronisation with the complete AD Forest.
After the full sync completes , You can then filter the OU’s and they will be deleted from Syncing with Office365.
I recently had an issue whereby the objects in the OU’s that I had filtered were not getting removed from my Office365 tenant. So to resolve the issue , I performed the steps above.
Once complete , Run the powershell command below to clear out the Office365 recycle bin.
Get-MsolUser –all -ReturnDeletedUsers | Remove-MsolUser -RemoveFromRecycleBin -Force

Office365 Desktop Readiness & Server Patches/Utilities

Microsoft Office365 sign in assistant 

Microsoft Office 2013 Service Pack 1 x86

Microsoft Office 2013 Service Pack 1 x64

Microsoft Office 2010 Service Pack 2 x86

Microsoft Office 2010 Service Pack 2 x64

Microsoft Outlook 2010 SP2 February 2014 Cumulative Update

Microsoft Office 2007 Service Pack 3 x86

Microsoft Office 2007 Service Pack 3 x64

Microsoft Outlook 2007  Patch KB2596598

Microsoft Outlook 2007 Patch KB268704

Azure RMS Sharing Application

Lync2013 April 2014 Cumulative Update

Microsoft Exchange Server 2010 Service Pack 3

Microsoft Exchange Server 2010 Service Pack 3 Rollup 5

Windows Azure Active Directory Sync tool – 64 bit

IdFix DirSync Error Remediation Tool

Windows Azure Active Directory Module for Windows PowerShell (32-bit version)

Windows Azure Active Directory Module for Windows PowerShell (64-bit version) 

Windows Azure AD Rights Management Administration Tool

SharePoint Online Management Shell

Windows PowerShell Module for Lync Online

Microsoft Exchange Server 2013 Service Pack 1 (SP1)

Exchange Online Distribution Group Delivery Management

I recently carried out a large migration and my customer had 700 Distribution Groups. My customer asked me to restrict delivery of emails to the groups by members only. So end users could not email the distribution group unless they were a member. 

So how do I do this for 700 users!! Powershell to the rescue.

Connect to Exchange Online via Powershell and run this command.

  1. Get-Distributiongroup | export-csv C:\users\disti.csv
  2. I then deleted all columns in the csv except for PrimarySmtpAddress and then renamed that column to distiname.
  3. Then run this command
    Import-Csv “C:\Users\sofarrell\Desktop\disti.csv” | Foreach-Object{get-distributiongroup $_.distiName | Set-distributiongroup -AcceptMessagesOnlyFromDLMembers $_.distiname}
  4. And then run this command
    Import-Csv “C:\Users\sofarrell\Desktop\disti.csv” | Foreach-Object{get-distributiongroup $_.distiName | Set-distributiongroup -AcceptMessagesOnlyFromSendersOrMembers $_.distiname}
Job done , Happy Customer.

Exchange Online Mailbox only has 25gb Storage Quota

Some of my customers mailboxes were still displaying 25gb as their mailbox storage quota size instead of 50gb. 

So the fix is quite simple.

Firstly connect to Exchange Online via Powershell.

1. Set-ExecutionPolicy unrestricted 

2. $LiveCred = Get-Credential 

3. $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $LiveCred -Authentication Basic -AllowRedirection 
4. Import-PSSession $Session
Then run the following CMDlet which will increase the size to 50gb for all user mailboxes:
Get-mailbox -resultsize unlimited | Set-Mailbox -ProhibitSendReceiveQuota 50GB -ProhibitSendQuota 49.75GB -IssueWarningQuota 49.5GB

Google Apps – Office365 email co-existence

I recently migrated a large Google Apps tenant to Microsoft Office365 (10k + users). Google require a verification code to set up forwarding to a user’s alias. Which means it is not possible to automate the forwarding from Google Apps to Office365.

So the way we enable co-existence is as follows.

Domain Name : 

  1. Add an alias domain into Google Apps. Google state that this can take up to 24 hours. I have seen it complete in 10 hours. This will add an alias to all Google Apps users
  2. Export all Office365 user’s userprincipal names to a csv.
  3. Enable forwarding for all users in Office365 to their This is done by using the following powershell command in Exchange Online.
    Import-Csv “C:\Users\sofarrell\Desktop\RelayAddress.csv” | Foreach-Object{Get-Mailbox $_.DisplayName | Set-Mailbox -ForwardingSMTPAddress $_.MailAddress -DeliverToMailboxAndForward $true} -verbose
  4. When the last mailbox has migrated we then remove the forwarding and edit the delivertomailboxandforward value.
    Get-Mailbox | Set-Mailbox -ForwardingSmtpAddress $null -delivertomailboxandforward $false