Thursday, March 10, 2011

Migrating SCCM 2007 from Windows 2003 to 2008 on New Hardware

We needed to move some hardware around to save money on purchasing a new riser card for an LTO tape drive upgrade.  That gave us the opportunity to migrate off of Windows 2003 32-bit and test our recovery steps on SCCM 2007.  Our current environment was using SQL 2005 and we wanted to use SQL 2008 specifically for reporting services.

Here are the steps that worked for me and my coworker Kevin:

  1. Shutdown all SMS services and set them to disabled. (Don't want to restart machine and make changes to SCCM)  
  2. Upgrade SQL 2005 to SQL 2008 R2 on old machine.
  3. Shutdown all SQL services and set them to disabled.
  4. Backup up SCCM 2007 databases *.mdf and *.ldf files for SMS_001 (Check for file locations by right-clicking on SMS_001 in SQL Management Studio and clicking on file)
  5. Change computer name of the old computer to something like SCCM2 instead of SCCM
    1. Turn off old computer.
  6. Build Windows 2008 R2 64-bit on the new machine.  Name computer name SCCM but keep in mind that all permissions that were set are now set for SCCM2 based on the SID.
  7. Install SQL 2008 R2.
  8. Install SCCM 2007 SP1.  Reuse same Site ID and Site Name (as long as services are off on the old computer this should not have problems)
  9. Upgrade to SCCM 2007 R2 (match the version level of the old machine)
  10. Verify that everything installed correctly by logging into the Config Manger console.
  11. Shutdown all SCCM services temporarily.
  12. In SQL Management Studio change the name of the SMS_SiteCode database to something like SMS_SiteCode_new.
    1. Right-Click and attach the old database files that are in the same location as on the old SCCM computer
    2. We had permission problems on our c:\SQL_logs  folder where the folder was set for read-only.
  13. If the new database looks attached correctly as SMS_SiteCode, then go ahead and start up all SCCM services
  14. You should be able to log into Config Manager now and see some errors about Active Directory permissions under SMS_Site_Component_Manager.
    1. Go to Active Directory Computers and Users
      1. Select "Advanced Features" under the View Menu
    2. Expand "System" object
    3. Right-click on "System Management" and choose Properties
      1. Note that the old SCCM computer will have full control permissions using the new computer name.
      2. Add the new SCCM computer which is called "SCCM" in my example and give it full control
    4. Right-click on "SMS-MP-SiteCode-SiteComputerName" and choose Properties
      1. Add the new SCCM computer which is called "SCCM" in my example and give it full control.
  15. Restart "SMS_SITE_COMPONENT_MANAGER" Windows Service.
I'm at a pretty good place right now.  I'm a little concerned that I may have SMS services installed that were not set up in the old database but I'll keep posting as I find issues.

We had a little bit of problems that had to be ironed out by running the Site Recovery and Repair tool.  I also needed to copy the permissions for the local computer group onto the new server (i.e. SMS Admins)

We ran into a problem trying to change the computer name after installing Reporting Services but were able to fix it following this link.