Lorsque l’on souhaite déplacer du contentu d’une collection vers une autre ou d’une ferme vers une autre, il est rapidement nécessaire de passer par l'export de contenu.
Un article sur ce sujet a d’ailleurs été rédigé :
- SharePoint : Nouvel article sur l'exportation et Importation de sites SharePoint
- Exporter et Importer un site SharePoint
Une première chose est très importante à maîtriser lors de l’import :
Ceci permettant de ne pas voir les information des données perdues (qui a modifié et quand). Mais une autre option est à connaître lors de l’Export pour ne pas rencontrer une erreur lors de l’import qui bloque le chargement du contenu :
Cette option est une propriété de la classe SPExportSettings qui est nécessaire lors de l’export. L’erreur rencontrée est visible dans le log d’import avec un message ressemblant à celui-ci :
FatalError: The file cannot be imported because its parent web <URL name of the exported subsite> does not exist
Il faut donc modifier le script PowerShell qui avait été développé pour cette tache d’export en ajoutant :
function Export-List([string]$ListURL)
{
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Deployment") > $null
$versions = [Microsoft.SharePoint.Deployment.SPIncludeVersions]::All
$exportObject = New-Object Microsoft.SharePoint.Deployment.SPExportObject
$exportObject.Type = [Microsoft.SharePoint.Deployment.SPDeploymentObjectType]::List
$exportObject.IncludeDescendants = [Microsoft.SharePoint.Deployment.SPIncludeDescendants]::All
$settings = New-Object Microsoft.SharePoint.Deployment.SPExportSettings
$settings.ExportMethod = [Microsoft.SharePoint.Deployment.SPExportMethodType]::ExportAll
$settings.IncludeVersions = $versions
$settings.IncludeSecurity = [Microsoft.SharePoint.Deployment.SPIncludeSecurity]::All
$settings.OverwriteExistingDataFile = 1
$settings.ExcludeDependencies = $true
$site = new-object Microsoft.SharePoint.SPSite($ListURL)
Write-Host "ListURL", $ListURL
$web = $site.OpenWeb()
$list = $web.GetList($ListURL)
$settings.SiteUrl = $web.Url
$exportObject.Id = $list.ID
$settings.FileLocation = "C:\Temp\BackupRestoreTemp\"
$settings.BaseFileName = "ExportList-"+ $list.ID.ToString() +".DAT"
$settings.FileCompression = 1
Write-Host "FileLocation", $settings.FileLocation
$settings.ExportObjects.Add($exportObject)
$export = New-Object Microsoft.SharePoint.Deployment.SPExport($settings)
$export.Run()
$web.Dispose()
$site.Dispose()
}
Cette mise à jour est faite pour les scripts en ligne sur le site CodePlex :
Romelard Fabrice [MVP]
Commentaires
Enregistrer un commentaire