In a previous post, I wrote about the difference between a Microsoft SharePoint migration and an upgrade. The post resulted in a request from a customer. The customer wanted to perform a migration. In order to migrate the SharePoint content, the customer purchased DocAve 6 Service Pack (SP) 1.
The customer had many site collections in a Microsoft Office SharePoint Server 2007 environment that they wanted to restructure to new site collections in Sharepoint 2010. However, they did not want to create 10,000 migration plans as the job originally required. They were able to automate this process with a feature called DocAve Manager Shell.
DocAve Manager Shell was introduced with the release of DocAve 6. This shell is an extension of the power of Windows PowerShell, to which we have added several cmdlets. With DocAve6 SP1, we have expanded its capabilities even further. To see what we deliver with this feature, use the following PowerShell command:
This command will list all the Windows PowerShell cmdlets which have “da” somewhere in the name, including all DocAve commands, and will show them on a page by page basis.
To go back to the task at hand: I need to create 10,000 migration plans. In order to do that, I need to use the following PowerShell cmdlet:
The next step will require some extra information to make sure the plan includes the right source site collection and points to the right target site collection. It needs to use the right agent group in both the source and the target.
Here are the steps we took to do this:
1. Create agent groups using DocAve Manager
2. Create the new site collections in SharePoint 2010 using PowerShell scripts
3. Create a source file in which the following information was stored in a comma separated format:
Planname, source, target, sourceagentgroup, targetagentgroup
4. Create a PowerShell script to read the source file and create the migration plans in DocAve
5. Run this script from the DocAve Manager Shell
Here is an example of the comma separated file:
I have stored this file as sourcefile.csv at the root of c:\.
Meanwhile, I have created the following PowerShell code to create all the plans:
### Login to the control service
Login-DAManager -ControlHost localhost -ControlPort 14000 -Username admin -PlainTextPassword admin
### Read the file with planname, source site collection and target site collection
$Source = Import-Csv c:\sourcefile.csv -Header planname, source, target, sourceagent, targetagent
### loop through this file and create a plan for each line
foreach ($line in $Source)
$plan = Get-DASP07To10MigrationBlankOnlinePlan
$plan.Name = $line.planname
$plan.Description = $line.planname
$plan.SourceFarmName = ‘Farm(SQL-SERVER\DEMO:MOSSWFE1_CONFIG)’
$plan.DestinationFarmName = ‘SP2010-WFE1’
$plan.SourceAgentGroupName = $line.sourceagent
$plan.DestinationAgentGroupName = $line.targetagent
$plan.ProfileName = ‘Default Profile’
$list07 = New-Object DocAve.API.Objects.SharepointSite(‘Farm(SQL-SERVER\DEMO:MOSSWFE1_CONFIG)’, $line.source)
$list10 = New-Object DocAve.API.Objects.SharepointSite(‘SP2010-WFE1’, $line.target)
$plan.Action = ‘Merge’
I have saved this in the root of c:\ as migration.ps1.
Then I can run the code in the DocAve Manager Shell (c:\migration) and my plans now show up in DocAve Manager.
I hope this example shows you the power of PowerShell combined with DocAve cmdlets.
This script is what I was looking for that nobody else was able to provide! I’m having a bit of trouble getting it to work but it’s probably my lack of understanding PowerShell. Absolutely what I needed to automate migrations.
Thank you. We’re on DocAve 6 CU3. Moving about 12,000 sites over time to 2010. Automation was key. I knew it could be done but wasn’t sure how. As Marc said, absolutely the info we needed to use the PowerShell guide to get jobs done faster. Much appreciated.
Ran into the same issues. I tested out DocAve in the lab. Works beautifully. Then I wanted to test a move of 300 sites. Didn’t want to tick 300 checkboxes. This was really helpful. I notice the creation of the site via the SharePoint services is really the slowest part of the migration.
A more exact way to list the DocAve PowerShell commands would be:
get-command -Module DocAveModule | more