[New Release] Recover deleted items using M365 Exchange Admin Center

Users accidentally deleting emails can sometimes be a painstaking task for an administrator. Specially if you are in charge of 1000+ users and majority of them are not tech savvy. For the past few years Office 365, or Microsoft 365 as now we call it gave us two main options. First would be to use the Outlook client and the second would be to use PowerShell.

Finally, Microsoft has released the ability to “Recover deleted items” using the New M365 Exchange Admin Center.


  • The Exchange administrator account that will be used to recover the mail items needs to be assigned with the “Mailbox Import Export” permission. To do this, you can either create a new Role or modify an existing role and add the “Mailbox Import Export” to the permission list.
  • Once permissions are granted, wait for a few minutes, sign-off and sign-in again for the permissions to be active for your session
  • This will adhere to your deleted items retention policies placed within the organization or user level.

For the below demo, we’ll look at the below users Deleted Items folder.

Now that we know what items will be recovered, let’s head to the Exchange Admin Center and see how the recovery is done.

  1. Login to the all-new Exchange Admin Center : https://admin.exchange.microsoft.com
  2. Navigate to Recipients > Mailboxes
  3. Select the user that you wish to recover the items from, click on the three dots (more options) and select Recover deleted items.

  4. Once you are in the Recover deleted items page, adjust the filters as you wish and click Apply filter. As you can see, all mail items are visible in the search results that’s also visible in the users Deleted Items folder from his personal login.

  5. Now to recover, you can either select a single entry, multiple entries or all items and click on the Recover deleted items button.

  6. The email item will now be restored to the Original folder as displayed in the above result summary.

And you are done!

Microsoft has really worked this feature out in terms of user-friendliness with the new EAC. This is just one feature and in the future posts, I will demo the ret of the new additions. Give this a try and share your thoughts.


450 4.7.320 Certificate validation failed


The environment was running Exchange Server 2016 (n-1)CU with Office 365 in a hybrid mode. The issue came up when users on-prem noticed that they are unable to receive emails from their own O365 cloud users. Looking more into this, figured out the following user mail flow scenarios;

  • On-prem users can send/receive mails within on-prem and to/from internet users
  • O365 cloud users can send/receive mails within O365 and to/from internet users
  • On-prem users cannot send/receive emails to/from O365 users

So obviously, this had to do something with the hybrid connector since that’s the tunnel that bridges the two environments.

So back to the basics, lets trace down the error messages and see if we can get a clue. In order to see where our mails are stuck, you need to first check the delivery reports. Log in to the O365 Exchange ECP as administrator and navigate to Message Tracing. On the message tracing log, you will see something like below;


We’re almost there now. The above indicates that why O365 is not delivering the mails to on-prem environment is because as on the first item, we have configured to use TLS between the hybrid environments. Thus due to whatever reason, the certificate presented from the on-prem public IP does not match the certificate that is been binded in the Hybrid Configuration. Now in order to validate this, we need to look at two points;

  • Ensure that the certificate is not expired
  • Check Hybrid Configuration certificate settings: To validate that you have the correct certificate open up the Exchange PowerShell module on your on-prem and run the below command;



Now as you can see, the Hybrid configuration is configured with the correct certificate. So nothing to worry on that.

  • Exchange Connector TLS settings: The next connection point would be our internal Exchange Server receive connector. Why this connector is important is that when O365 is trying to connect with the exchange server for mail delivery, it will try out TLS for authentication. This is because we have TLS enabled; meaning we should have the correct certificate binded to the corresponding Receive Connector. In many cases this would be the Default FrontEnd connector. Run the below command and ensure that the property tlscertificatename is set correctly and is the same as the above certificate.

Get-ReceiveConnector -Identity “<ExchangeServerName>\Default Frontend <ExchangeServerName>” | fl

In my case, the certificate was all fine and is set for the one as expected.

So, the certificate itself, exchange setup and office 365 hybrid setup is all configured as expected. Yet somehow, Office 365 is telling me that the certificate is not correct.

This is where we would need to properly test TLS in a more informative manner. We will now see how we can use a method where we can see the TLS communication that is made to our on-premises.

Enter CheckTLS web testing provider. The provider has many tools to check TLS mechanisms but in our case, we are looking at the receiving part. Thus we will head over here.


What it does?

TestReceiver performs all the steps that Internet email systems go through to send email. It records every command and byte of data it sends and every answer and byte of data that the other email system sends. TestReceiver never actually sends an email, it just gets as close as possible, learning as much about the remote system as it can.

Because CheckTLS focuses on security, TestReceiver tries to establish a secure (TLS) connection with the recipient’s system. Along with recording everything, it looks at the security of the recipient’s system for things like: certificate contents and signers, encryption algorithms, key lengths, hostname mis-matches, incorrect wild-card usage, weak cyphers, etc.

So is this safe? absolutely. Since it only checks whatever is already published by your organization. It doesn’t grab your email ID, username or passwords.

  1. So head over to the site and under the Input fields, type your domain name in the eMail Target
  2. Ensure that under the Output Format you have selected Detail (this will provide you a verbose log of the connection status, more meaningful)
  3. Click Run Test.
  4. Give it some time to run the test and notice the logging which happen in the background. This is the session initiation that happens in real time.
  5. Once the test is completed, look in the detailed log.13


And we have found the culprit. Just have a closer look at the above image. You can see that the TLS authentication does start however the certificate validation fails. The reason is that the issuing certificate is not our Exchange Certificate, but a self signed certificate by the barracuda appliance which is front-ending to external connections.

When Office 365 tries to initiate a TLS session, it is getting this self signed certificate thus the required URLs are not found (mail.domain.com) hence it drops the connection and throws out;

450 4.7.320 Certificate validation failed.

If this is your case, bump up your network team and ask them to bind the correct certificate from the appliance. Once its configured properly, run the below tests again to validate that everything is all good.

  • CheckTLS Receive validation – Ensure correct certificate is thrown out
  • Office 365 Connector Validation

If everything is successful, send out couple of emails and you will see that mailflow is working as expected. For the mails that were queued, give some time and it’ll start flowing.

Got any inputs? Please feel free to let me know your ideas.


Ignite 2016 Session Viewer for O365/Exchange – Technet Gallery


This is a small macro sheet I made to be used as a one-stop real time viewer for Office 365 and Exchange Server related sessions from the Microsoft Ignite 2016. Currently there are more than 170 Office 365 and 50 Exchange related sessions listed on the Microsoft Ignite site. This viewer is not fully updated, however the session list is getting updated and will post changelogs in whats news.


Following sessions are available for viewing;

  • BRK1001 : Maximize your Office 365 administration: tips and tricks
  • BRK1003 : Explore accessibility in Office 365: plans and progress
  • BRK1016 : Address your CXO’s top five cloud security concerns
  • BRK1021 : Unplug with the Microsoft Outlook experts
  • BRK1033 : Build your intranet with Microsoft Office 365
  • BRK1044 : Dive deeper into what’s new and what’s coming in Outlook on the web
  • BRK2008 : Understand your users: what’s new in Office 365 Usage Reporting
  • BRK2009 : Manage Office 365 more effectively: what’s new in Office 365 administration
  • BRK2010 : Implement ExpressRoute for Microsoft Office 365 (step by step)
  • BRK2013 : Keep calm and automate: How we secure the Office 365 service
  • BRK2032 : Identify and illustrate insights with new Microsoft Excel Charts
  • BRK2033 : Discover Office 365 Groups – overview, what’s new and roadmap
  • BRK2035 : Learn about advancements in Office 365 Advanced Threat Protection
  • BRK2035 : Learn about advancements in Office 365 Advanced Threat Protection
  • BRK2044 : Discover what’s new and what’s coming for Office Delve
  • BRK2046 : Learn what to use when: Office 365 Groups, SharePoint Team Sites, Yammer, and OneDrive for Business
  • BRK2050 : Dive into Microsoft Office 365 and SharePoint Hybrid Scenarios
  • BRK2053 : Connect your business critical applications to Outlook and Groups
  • BRK2093 : Design your Exchange infrastructure right (or consider moving to Office 365)
  • BRK2097 : Drive Office 365 adoption: methodology, best practices, and resources from Microsoft
  • BRK2100 : Move to Office 365 and drive adoption – lessons learned from the Carlsberg Group
  • BRK2139 : Protect your business and empower your users with cloud Identity and Access Management
  • BRK2160 : Build business applications with Power Apps, Microsoft Flow, and Office 365
  • BRK2166 : Learn about Office 365 Secure Score: actionable security analytics
  • BRK2170 : Discover what’s new with Microsoft Exchange Public Folders
  • BRK2215 : Debate the top 10 reasons not to move your Exchange on-premises mailboxes to Exchange Online
  • BRK2216 : Unplug with the experts on Exchange Server and Exchange Online
  • BRK2216 : Unplug with the experts on Exchange Server and Exchange Online
  • BRK2217 : Discover modern support in Outlook for Exchange Online
  • BRK2218 : Move from Exchange 2007 to Modern Exchange
  • BRK2219 : Meet twin sons of different mothers – Exchange Engineers and Exchange MVPs
  • BRK2220 : Peer behind the curtain – how Microsoft runs Exchange Online
  • BRK2245 : Transform the way you manage Skype for Business
  • BRK2252 : Understand Microsoft’s Office 365 datacenter strategy and approach
  • BRK2275 : Improve Office 365 adoption: top 10 ways
  • BRK2298 : Plan to drive value and user adoption in Microsoft Office 365
  • BRK3000 : Unplug with the experts on Microsoft Exchange Top Issues
  • BRK3001 : Explore the ultimate field guide to Microsoft Office 365 Groups
  • BRK3003 : Collaborate outside the firewall with Microsoft Office 365
  • BRK3007 : Investigate tools and techniques for Exchange Performance Troubleshooting
  • BRK3015 : Reduce costs and challenges with Office 365 eDiscovery and Analytics
  • BRK3016 : Take control of your data with intelligent data governance in Office 365
  • BRK3017 : Own your data and service – monitor and investigate with Office 365 Auditing, Insights and alerts
  • BRK3018 : Take control of your security and compliance with Office 365
  • BRK3019 : Manage Microsoft Office 365 Groups
  • BRK3022 : Challenge cloud encryption myths and learn about Office 365 BYOK plans
  • BRK3023 : Understand how Microsoft protects you against Spoof, Phish, Malware, and Spam emails
  • BRK3024 : Building security and compliance solutions with the O365 Activity API – a Microsoft IT case study
  • BRK3040 : Own your data with next generation access control technology in Office 365
  • BRK3045 : Use Microsoft Graph to reach users on hybrid Exchange 2016
  • BRK3046 : Build intelligent line-of-business applications leveraging the Outlook REST APIs
  • BRK3074 : Discover what’s new in Active Directory Federation and domain services in Windows Server 2016
  • BRK3083 : Secure Office 365 like a cybersecurity pro—assessing risk and implementing controls
  • BRK3102 : Conduct a successful pilot deployment of Microsoft Intune
  • BRK3109 : Deliver management and security at scale to Office 365 with Azure Active Directory
  • BRK3215 : Dive into Modern Authentication – how it works and what to do when it doesn’t
  • BRK3216 : Plan performance and bandwidth for Microsoft Office 365
  • BRK3217 : Run Microsoft Exchange Hybrid for the long haul
  • BRK3219 : Migrate to Exchange Online via Exchange Hybrid
  • BRK3220 : Deploy Microsoft Exchange Server 2016
  • BRK3221 : Understand the Microsoft Exchange Server 2016 Architecture
  • BRK3222 : Implement Microsoft Exchange Online Protection
  • BRK3227 : Ask us anything about Microsoft Office 365 Groups
  • BRK3242 : Discover a new level of Service Health insights for Office 365
  • BRK3253 : Experience Scott Schnoll’s Exchange tips and tricks
  • BRK3254 : Cert Exam Prep: Exam 70-345: Designing and Deploying Microsoft Exchange Server 2016
  • BRK3281 : Deliver a BYOD program that employees and security teams will love with Microsoft Intune
  • BRK3298 : Secure your Active Directory to mitigate risk in the cloud
  • BRK4000 : Review ExpressRoute for Office 365 configuration (routing, proxy and network security)
  • BRK4015 : Build client-side web parts for Microsoft SharePoint
  • BRK4031 : Overcome network performance blockers for Office 365 Deployments
  • BRK4032 : Dive deep into Microsoft Exchange Server High Availability
  • THR1003R : Take control of your security and compliance with Office 365
  • THR1004R : Empower employees with Microsoft Delve Analytics
  • THR1005R : Dive deeper into what’s new and what’s coming in Microsoft Outlook 2016 for Windows
  • THR1011R : Dive deeper into what’s new and what’s coming in Outlook mobile
  • THR2004R : Manage Microsoft Office 365 from anywhere
  • THR2006R : Get an edge over attackers – what you need to know about email threats
  • THR2007R : Fight back with advancements in Office 365 Advanced Threat Protection
  • THR2009R2 : Roll out Microsoft Office in one of the most demanding environments
  • THR2020R : Deploy successfully : top 10 Office 365 ProPlus installation/activation tips
  • THR2022 : Migrate your data to Microsoft Office 365 – why?
  • THR2190R : Secure your sensitive email with Office 365 message encryption
  • THR2207 : Modernize your clients with Office 365, Windows 10 and Enterprise mobility – the admin experience
  • THR3001R : Migrate DL to Microsoft Office 365 Groups
  • THR3007 : Protect your sensitive information with Office 365 Data Loss Prevention
  • THR3008R : Gain visibility and control with Office 365 Advanced Security Management
  • THR3010 : Help your users collaborate better with Office 365 Groups

Migrating from Gmail to O365 – Step by Step

Hello everyone,

Today’s post is going to take a different approach. It’s a video tutorial. The session is going to be a full step by step guide that describes how you can migrate from a gmail environment to an Office 365 environment using an IMAP migration process.

You can use the Internet Message Access Protocol (IMAP) to migrate user email from Gmail, Exchange, and other email systems that support IMAP migration. When you migrate the user’s email by using IMAP migration, only the items in the users’ inbox or other mail folders are migrated.

An administrator performs an IMAP migration to Office 365. All email, but not contacts or calendar information, can be migrated for each mailbox.


  • It is required that you create a mailbox for each user before you migrate their email from the gmail account.
  • You can migrate a maximum of 500,000 items from a user’s mailbox (emails are migrated from newest to oldest)
  • The biggest email you can migrate is 35 MB.
  • You can only migrate items in a user’s inbox or other mail folders. This type of migration doesn’t migrate contacts, calendar items, or tasks.
  • Migration provisioning requires the user passwords or delegated access to user mailboxes using administrator credentials.


Watch-out for a step by step guide in the near future. If you do encounter any errors, please do comment below. Cheers!!

PowerShell: Manage your O365 – Step by Step

In this article, let’s see how we can use PowerShell and start with the scratch in getting into O365.

The scenario that we are talking about assumes that the user has created a tenant in the office 365 environment. No further changes in terms of domain/users etc. has not been performed.

Import PS Module

Import PowerShell Online Module: Before doing any of the below tasks, we need to download the commands and functions. By default, PowerShell doesn’t include the commands. So run the below command which will load the Online command modules;

Import-Module MSOnline


Login to Office 365 tenant: Now after loading the module, we need to connect to the Office 365. The Connect-MsolService cmdlet will initiate a connection with Microsoft Azure Active Directory.

This first command will prompt for the credentials and pass it on in the second command that will authenticate with your tenant.

$msolCredentials = Get-Credential

Connect-MsolService -Credential $msolCredentials

List down authorized Domains:

The below cmdlet is used to retrieve the associated domains under the given tenant. Here we check the existing domains.

Get-msoldomain | fl

Add Domain:

The cmdlet is used to create a new domain object in the given Office 365 tenant environment. Once completed a domain entry will be displayed under the domain list. However, the verification is still under pending.

New-MsolDomain –Authentication Managed –Name scko.info

Domain Verification

Domain Verification Part 1:

Is used to return the details of the DNS records that need to be set to verify a domain. Values for Mode are DnsMXRecord and DnsTxtRecord where you will use the values in your DNS Registrar.

Get-MsolDomainVerificationDns -DomainName scko.info -Mode DnsTxtRecord

Domain Verification Part 2:

Used to confirm ownership of a domain. Once you have added the above TXT or MX records to your DNS list, you run the below command which will run the verification from Office 365 end to verify and confirm the domain ownership.

Confirm-MsolDomain –DomainName scko.info

List down authorized Domains:

Now we will use the cmdlet again to retrieve the associated domains.

Get-msoldomain | fl

Note: Please note that after this step, the retrieval of the DNS records associated with Office 365 services (Exchange/SharePoint/S4B etc) needs to be done using the web based Office 365 Admin page. You cannot retrieve the related DNS records through PowerShell.

Note: Adding Licenses needs to be done from the web portal.

Check Office 365 License:

The below cmdlet will list all the SKUs that the tenant owns.


At this point we have finished the following;

  • Tenant Creation
  • Domain adding and verification

User creation

In the next step we will look at user creation.

Create Single User:

The cmdlet will create an individual account.

New-MsolUser -UserPrincipalName jude@scko.info -City Colombo -State Western -Country “Sri Lanka” -DisplayName”Jude Perera” -FirstName Jude -LastName Perera -Password admin@123 -UsageLocation LK -LicenseAssignmentjcpciex:ENTERPRISEPACK

Note: If the license assignment is done at this point the USAGELOCATION and LICENSEASSIGNMENT parameters are required. The value for the LicenseAssignment can be obtained through the Get-MsolAccountSku cmdlet

Office 365 User Attributes

New-MsolUser -UserPrincipalName -City -Country -Department -DisplayName -FirstName -LastName -MobilePhone -PasswordNeverExpires -State -StreetAddress -Title -UsageLocation -LicenseAssignment

Attribute Description
UserPrincipalName This is the account name that’s used to sign in to Office 365 services.
City This will include the city
Country The country of the user
Department The department
DisplayName This is the display name that’s used in Office 365 services.
FirstName First Name
LastName Last Name
MobilePhone Mobile phone number
PasswordNeverExpires This specifies if the user password is set to expire(false) or not(true)
Password If you don’t specify a password, a random password is assigned to the user account, and the password is visible in the results of the command. If you specify a password, it needs to meet the following complexity requirements:

·         8 to 16 ASCII text characters.

·         Characters from any three of the following types: lowercase letters, uppercase letters, numbers, and symbols.

UsageLocation This is a valid ISO 3166-1 alpha-2 country code. For example, US for the United States, and FR for France. It’s important to provide this value, because some Office 365 services aren’t available in certain countries, so you can’t assign a license to a user account unless the account has this value configured.
LicenseAssignment This is the licensing plan (also known as the license plan, Office 365 plan, or SKU) from which an available license is assigned to the user account. The license defines the Office 365 services that are available to account. You don’t have to assign a license to a user when you create the account, but the account requires a license to access Office 365 services.


Get User Details:

The command will retrieve the user information for the given users UPN

Get-MsolUser -UserPrincipalName jude@scko.info |fl

Now that we have learnt how to add a single user and what attributes we can associate it with, lets see how we can do a bulk import. This is especially useful when you are creating the users at first or having to add multiple users at a single time.

In preparation for this task we need create the users and attributes in CSV format. The below table lists sample data and the attributes that will be imported to Office 365.

Sample CSV file can be downloaded from here.

Bulk Import:

The below cmdlet will import the users and attributes from the given CSV file

Command 01:

$users = Import-Csv “D:\Demo ITPro\Office365Users.CSV”

Command 02:

$users | ForEach-Object{
New-MsolUser -UserPrincipalName $_. UserPrincipalName -City $_.City -Country $_.Country -Department$_.Department -DisplayName $_.DisplayName -FirstName $_.FirstName -LastName $_.LastName -MobilePhone$_.MobilePhone  -State $_.State -StreetAddress $_.StreetAddress -Title $_.Title -UsageLocation $_.UsageLocation -LicenseAssignment $_.LicenseAssignment

Password Configuration:

The below command can be used to enable(true) or disable(false) the requirement of Strong Passwords for users

Get-MsolUser | Set-MsolUser -StrongPasswordRequired $false

Password Change:

If you wish to change the passwords of your users in bulk mode, the below import method can be used.

The import method will import a list of users, their UserPrincipleName and the new Password along with the Set-MsolUserPassword cmdlet. You can use a CSV file with below format.

UserPrincipalName Password
User One pass@word1
User Two pass@word2
User Three pass@word3


Import-Csv “D:\Demo ITPro\Office365Users.csv” | % {
Set-MsolUserPassword -UserPrincipalName $_.UPN -NewPassword $_.password -ForceChangePassword $false

Create Office 365 User Groups:

The New-MsolGroup cmdlet is used to add a new security group to the tenant. Note that creating groups does not mail enable them. Mail enabling a group needs to done with the help of the Microsoft Exchange Online PowerShell module which we will look in a later stage.

New-MsolGroup -DisplayName “Security Group” -Description “Security Group”

View Office 365 Groups:

The below cmdlet will list down with the Groups and all related attributes.

Get-MsolGroup | fl

Adding users to Group: Adding users or members to a group is not simple as the browser based controls. The Add-MsolGroupMember cmdlet is used to add members to a security group. The new members can be either users or other security groups. The group memberships totally depends on Group and User ID’s under the user/group properties.

Add-MsolGroupMember -GroupMemberObjectId <Guid> -GroupObjectId <Guid> [-GroupMemberType <string>] [-TenantId <Guid>] [<CommonParameters>]

-GroupMemberObjectId <Guid>:
The object ID of the member (User or Group) to add to the group. The ID of the group to add members to. To get the value, run the Get-MsolUser -UserPrincipalName singleadd@scko.info | fl command. The Users ObjectID is shown in the below screenshot.


-GroupObjectId <Guid>: The ID of the group to add members to. To get the value, run the Get-MsolGroup | flcommand. The Groups ObjectID is shown in the below screenshot.

Now we will combine the above values to add the User “Single Add” to the new group we created earlier.

Add-MsolGroupMember -GroupObjectId 1a3edbb9-ec64-4184-bd22-5df4ae830158 -GroupMemberObjectId 52db4e40-bd95-426b-9c5a-bc752ceb044e

Once the member is added, now we run the below command to check the member adding

Get-MsolGroupMember -GroupObjectId a0b12555-e840-4f53-a857-91e41b69dbf0

Part 1 is done. In the coming days let’s see how we can use PowerShell to connect to Exchange Online services and manage things.

Until then, happy (power)shell’ing 🙂

MigrationPermanentException error while migrating from Gmail to Office 365

Here’s the scenario,

There was a client with Gmail who wanted to migrate things to Office 365. So as you may already know, you have the option of IMAP Migration. However, while almost everything looked to get sync’ed from Gmail, there were a set of users who were getting failed on the mailbox syncing. Checking up on the migration batch status for the specific user, the following error was thrown;

Error: MigrationPermanentException: We had troubles signing in to this account. Please confirm that you’re using the correct user name and password.




Step 1:

First thing you can check is to make sure that the logon credentials are all correct. Just open up gmail on your browser and try to login to verify. If you are unable to login, means you have wrong credentials so double check on that. But if the problem still exists, proceed to Step 2.

Step 2:

In my case the issue was a security setting of gmail side that prevented Office 365 to connect, thus throwing an authentication exception error. To resolve that, go through the below steps.

  1. Login to the gmail user account who’s getting the error.
  2. Right click on the user and click My Account
  3. On the My Account page, under Sign-in & security section, click on Connected apps & sites.
  4. On the connected apps & site section, under Allow less secure apps, ensure that the selection is set to OFF.
  5. Go back and run back the Office 365 migration task and you’ll see the user mailbox getting sync’ed!

Happy migrating. Look forward for a complete step by step guide on gmail to office 365 migration soon. Meanwhile if you encounter the above error and the resolution was something new, do share.

Something went wrong error with Office 365 Pro Plus installation

I encountered a case where the client had Office 2013 Home Premium installation on her desktop. She was on Office 365 SBP subscription and wanted to get the Office 365 Pro Plus which was already in the plan to be installed on the machine. So I described the methods of uninstalling and doing the installation. She was able to do a clean uninstall and trying to install the Office 365 Pro Plus from the O365 Software page. The Click-to-Run installer started the installation and popped up with the error

Something went wrong. We ran into a problem…“.

Sorry we ran into a problem

After receiving this she called me up.

1. At first i thought it might be an internet connectivity problem but it was perfect so that’s out of the question.

2. Then there was another situation that I have come across where there is/are multiple Office installation processes running together.

3.  Next wanted to make sure that Office Home Premium was completely uninstalled and yes by the looks it was, there were no references  in the control panel. No ‘Click-to-Run nor any other Office 2013’ installations were present in the list.

4. Then went on checking the Task Manager to see if there were any processes or tasks where any ‘Microsoft Office’ related one’s running.

5.  And after all of these, did so many restarts and tried to proceed with the installation but still getting the same error. Seemed like i was out of luck i landed on the used the given “Fix It” tool and ran it successfully. Did a restart to be sure everything is scrapped out.


6. Tried downloading and running the O365 Pro Plus but bam! still getting the error. So I went through the Microsoft Guide on removing the tid-bits manually. Still No Luck!

7. However, after that I did some deletions which were not mentioned on the above guide;

A. Removed the Registry key “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office”

B. Deleted “Microsoft Office 15” folder(s) from these locations “%Program Files%” and “%Program Files (x86)%\”

C. Restarted the machine.

Ta-Da!!!!!!  The installation went nice and smooth without a problem…

If you are having the same set of problems please do try this method. But Please make sure if you have additional Office installations, only delete the ‘15.0’ from the “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\” and make sure to take a backup of the registry beforehand.

Let me know if this helped or not. 🙂