PowerShell Advantage: Directory Integration Email Archive Migration

Posted by Tibi Popp • May 5, 2016
Powershell Email Archive Migration

In todays blog we'll look at how PowerShell reduces the complexity of archive migrations all while providing efficiencies that current archive migration software cannot. 

As you read in Monday's Joel Bennett's blog, Archive2Anywhere is now completely based on a PowerShell framework.   The decision to re-write the Archive360 Archive2Anywhere software around PowerShell is purely pragmatic.  It adds a couple of much needed capabilities in order to get email archive migrations to be faster, more predictable and less complex.

 A little bit of email archiving background

Currently all major email archive vendors, such as Enterprise Vault, SourceOne, and NearPoint have a component that scans the Active Directory (AD) for user and group information at regular intervals.  This is done in order to maintain the Archive in sync with the AD changes.  Many large organizations have witnessed firsthand the troubles the Archive has to crawl the large and intricate AD users and groups.  Due to various reasons such as regulatory compliance requirements, the AD crawler is a necessity for email archive vendors.

Archive migration vendors also adopted using such AD asynchronous models, some by building their own, some by leveraging the Archive's AD sync engine.  This "gathering" or "collecting" that they perform adds a great deal of complexity and becomes a major headache when migrating large user batches at high speed.  This process impacts how fast the initial migration starts and is a major hurdle when trying to maintain migration velocity.  The reality is that this asynchronous process is completely redundant in an email archive migration.  It has ZERO added benefit if the migration product is architected right.

Enter the world of PowerShell and its capability of real time Active Directory and Exchange querying

Archive2Anywhere has its entire core build around a PowerShell User Interface on top of which a WPF GUI resides. So what does this really mean? It allows Archive2Anywhere to query AD and batch users in real time. Let's take a 10,000 seat environment where users are added/removed on an hourly basis.  Now, you want to migrate users to Office 365 based on a specific AD property, such as department or branch…

Using A2A you would run the following command:

Get-ADUser | Where-Object -Property Department -eq traders | Select-Object mail | New-A2Ajob -target $_.mail/active -source EV -batch "traders batch 1"

  • This line gets the current users in the Traders Department and pipes the SMTP address to "New-A2Ajob".
  • The migration to Office 365 just started.

 Or even a better one:

Get-MsolUser | Where-Object $_.isLicensed -eq TRUE | Select-Object mail | New-A2Ajob -target $_.mail/PA -source EV -batch "traders batch 2"

  • This line gets the current users which were migrated to Office 365. It then pipes them into "New-A2Ajob"
  • The migration to Office 365 just started.

 With one line in PowerShell you just grabbed the latest information from AD and started a migration job. There is no need to worry about staying in sync with AD changes, ensuring that the right properties are "collected" by the archive migration software, or being notified which active users are fully moved to Office 365… especially useful when using Microsoft Replication Services (MRS) proxy.

First and foremost, this basic command can be integrated into any custom Office 365 migration script. Archive2Anywhere just replaces the AD sync process with a one line command that is fully integrated with your existing tool set.

Thus removing two major steps in streamlining your email archive migration (find who to move, know when the move is done).

 It's that simple.

Learn More about Archive2Anywhere

Learn More About FastCollect for Archives