As a Jack-of-most-trades at my place of full time employment, I had a project come across my desk recently that had me learning Microsoft Windows Powershell at break-neck speeds. We had a Microsoft Exchange 2003 to Exchange 2007 migration task, that was a bit muddier than normal. Our group was tasked with doing a managed cross-forrest migration that needed to also synchronize our LDAP server. We needed to provision, migrate, synchronize two active directory domains, and our Enterprise LDAP system. To do this seemlessly, there really was only one option, you guessed it... M$ powershell.
Now, initially I thought, well foolishly thought, that I could do most of the heavy lifting in Perl then call the powershell to just do the migration. This idea did not work. I decided at that point that I should do the entire process in the Windows powershell, calling .Net libraries to do anything that was outside what the powershell gives you natively. There's tons of information about what powershell is, and what commands come with a vanilla powershell install, plus tons of snap-ins you can use to get your job done easier. There's a great GUI called PowerGUI that support intellisense made by quest software, which is also freeware.
After playing around with powershell and getting my feet wet, I realized, this is Microsofts best product... Well I'm not a huge fan of Microsoft products, but I just found the powershell to be very flexible and very powerful (as the name implies).
I'll post some code snippets for some Exchange related migration tasks sometime later today...


Comments