使用Deployment API将SharePoint子网站移动到网站集的根目录

时间:2016-06-30 18:42:50

标签: powershell sharepoint sharepoint-2013

我们正在重组我们的SharePoint环境,并且我们将迁移到他们自己的网站集。但是,我们需要在执行此操作时保留对象的GUID,因此我们将使用Microsoft.SharePoint.Deployment选项。

我遇到的麻烦是,使用它不会允许我将导出的网页导入新网站集的根目录。它保留子网路径

例如,如果我导出这样的网页

Export-SPWeb "http://sharepoint.domain.com/sites/site1/example" -Path c:\export\example.cmp

然后使用以下脚本

导入它
$siteURL = "http://sharepoint.domain.com/sites/site2/"
$fileLocation = "c:\export"
$fileName = "example.cmp"

[void][System.Reflection.Assembly]::load("Microsoft.Sharepoint, version=12.0.0.0, culture=neutral, publickeytoken=71e9bce111e9429c")

[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Deployment")

# settings

$settings = new-object Microsoft.SharePoint.Deployment.SPImportSettings
$settings.SiteUrl = $siteURL
$settings.WebUrl = $siteURL
$settings.FileLocation = $fileLocation
$settings.FileCompression = $true
$settings.RetainObjectIdentity = $true
$settings.UserInfoDateTime = [Microsoft.SharePoint.Deployment.SPImportUserInfoDateTimeOption]::ImportAll
$settings.BaseFileName = $fileName

$import = new-object Microsoft.SharePoint.Deployment.SPImport($settings)
$import.Run()

意图是 example.cmp 将恢复为http://sharepoint.domain.com/sites/site2/作为根网站,但这会恢复为http://sharepoint.domain.com/sites/site2/example

有谁知道如何让它恢复到root?我无法使用Import-SPWeb执行此操作,因为我需要保留GUID。

1 个答案:

答案 0 :(得分:0)

在对此进行进一步研究之后,由于我们尝试迁移到自己的网站集的网站已启用发布,因此无论如何都需要以这种方式完成。

https://support.microsoft.com/en-in/kb/968483

  

Microsoft Office SharePoint Server 2007/2010/2013不支持   子网站迁移到根站点或根站点到子站点   打开发布功能的网站集。

我猜测Deployment API正在考虑使用此限制。

作为参考,这是我们需要遵循的解决方案。

  

使用发布功能时的有效迁移方案是   以下内容:

     
      
  • 从根网站开始导出网站集,然后将其作为根网站导入新网站集
  •   
  • 导出网站集的子网站,然后将它们作为子网站导入到具有“发布”的现有网站集中   已启用功能
  •