Sunday, July 1, 2012

How to Change Site Collection URL in SharePoint

At times, we get requests to change the Site collection URLs. While its relatively straightforward and easy by going to Site Actions >> Site Settings >> Title, description, and icon under Look and Feel to change the sub-site's URL, changing the site collection URL is not so!
how to change the site url in sharepoint
You can Change the URL of SharePoint 2010 Sub-Site using PowerShell also:

Get-SPWeb http://sharepoint.com/sites/sitecollection/subsite | Set-SPWeb -RelativeUrl newsubsiteURL

How to Change Site Collection URL in SharePoint?

To change the site collection's URL, There is no out-of-the-box user interface or direct ways. So, after making sure the destination URL's managed path is already in place and verifying the target site collection URL doesn't exist, I do this three step manual process.
  1. Backup the Source Site collection
  2. Delete the Source Site collection (Yes, its must! we've to delete the site collection before restoring it. Otherwise you will end up in No content databases are available for this operation GUID conflict issue.)
  3. Restore the Backup with the target URL
In MOSS 2007, I used to do it with STSADM as to change site collection URL:
stsadm -o backup -url http://sharepoint.crescent.com/sites/source -overwrite -filename source.bak

stsadm -o deletesite -url http://sharepoint.crescent.com/sites/source

stsadm -o restore -url http://sharepoint.crescent.com/sites/destination -filename source.bak

Now, in SharePoint 2010 with the help of PowerShell, Why don't try placing them into a script file to save some time?

Change SharePoint site collection URL using PowerShell:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue 

#Get the Source Site Collection URL
$sourceURL = Read-Host “Enter the Source Site Collection URL:”
 
#Get the Target Site Collection URL
$targetURL = Read-Host “Enter the Destination Site Collection URL”
 
#Location for the backup file
$backupPath = Read-Host “Enter the Backup File name & location (E.g. c:\temp\Source.bak):”

Try
{
  #Set the Error Action
  $ErrorActionPreference = "Stop"

 Write-Host "Backing up the Source Site Collection..."-ForegroundColor DarkGreen
 Backup-SPSite $sourceURL -Path $backupPath -force
 Write-Host "Backup Completed!`n"

 #Delete source Site Collection
 Write-Host "Deleting the Source Site Collection..."
 Remove-SPSite -Identity $sourceURL -Confirm:$false
 Write-Host "Source Site Deleted!`n"

 #Restore Site Collection to new URL
 Write-Host "Restoring to Target Site Collection..."
 Restore-SPSite $targetURL -Path $backupPath -Confirm:$false
 Write-Host "Site Restored to Target!`n"

 #Remove backup files
 Remove-Item $backupPath
}
catch
{
 Write-Host "Operation Failed. Find the Error Message below:" -ForegroundColor Red
 Write-Host $_.Exception.Message -ForegroundColor Red
}
finally
{
 #Reset the Error Action to Default
 $ErrorActionPreference = "Continue"
}

write-host "Process Completed!"

I Love PowerShell! The above method is also applicable when you want to change the Managed Path of your site collection (both SharePoint 2007 & SharePoint 2010).

To change host-named site collection's URL, you can simply use this PowerShell script:
$site = Get-SPSite -Identity "http://sales.crescent.com/teams/cloud"
$site.rename("http://sales.brightpoint.com/teams/CloudHosting")



You might also like:
SharePoint Usage Reports
Usage reports, collaboration and audit for SharePoint.
Document SharePoint Farm
Automatically generate SharePoint documentation.
*Sponsored


Check out these SharePoint products:

7 comments :

  1. Hi, I see a small risk with this PowerShell script. What happens if the backup fails (at line 13), e.g. due to incorrect path, insufficient disk space etc.? Does the script go on to remove the site collection even if the backup step has failed? Is there a way to end the execution of the script before removing the site collection if the backup would fail?

    ReplyDelete
    Replies
    1. True! I've updated the code with Try-Catch Block to Mitigate that Risk!! Thanks for your input.

      Delete
  2. Thanks for the script and posts for extra handling the risk.

    ReplyDelete
  3. Great Post. Thank you so much very clear and worked like a charm

    ReplyDelete
  4. Great one Thank You vey much

    ReplyDelete

Please Login and comment to get your questions answered!

You might also like:

Related Posts Plugin for WordPress, Blogger...