Project Description
"7-Up" is a collection of PowerShell scripts that automate the upgrade of SharePoint 2007 to SharePoint 2010 using the database attach or hybrid approach. Like a nightly build, the scripts are designed to be scheduled allowing upgrades to be iteratively practiced, tested and refined ensuring no surprises at go live.

Goals
The goals of this project are:

  • Create a “nightly automated upgrade” for SharePoint that can be scheduled to iteratively practice upgrades
  • Enable upgrade configuration to be stored in a common file rather than passing script parameters
  • Implement discreet scripts that can be executed individually or in concert with other scripts
  • Make scripts resilient; for example, if a task has already been performed, skip it rather than error out
  • Log each step so that errors can be identified and upgrade time can be calculated


How it Works
Environment-specific upgrade configuration is stored in a common file, Upgrade.xml:

7UPConfig

Each of the individual scripts utilize the common configuration file.  Although there are many scripts, there are two main scripts that execute actions in the correct sequence:

  • Upgrade-Farm.ps1.  Executes an upgrade
  • TearDown-Farm.ps1.  Removes upgraded components so the upgrade can be executed again

These scripts can be scheduled to run on a periodic basis and should be scheduled in the following order.  1. Tear down.  2. Backup and restore SharePoint 2007 databases to the SharePoint 2010 database server.  3. Upgrade.  Scripts should be run as the farm account.

7UPSequence

 

After the upgrade completes, review the upgrade log files and test the upgraded sites.  You may find issues such as missing features or configuration settings that were not transferred to the SharePoint 2010 farm.  Some problems can be resolved by making changes in the 2007 environment and re-testing after the next automated upgrade.  After many practice upgrades, the same scripts are executed at go live.

Last edited Dec 31, 2010 at 3:07 PM by johnwpowell, version 6