Passer au contenu principal

Exécuter une migration incrémentale dans PowerShell

Remarque : L’intégration PowerShell nécessite un abonnement Pro ou Enterprise à ShareGate Migrate. Elle n’est pas disponible avec le plan Essentials.

Vous pouvez modifier votre script pour effectuer une seconde migration qui copie uniquement les éléments plus récents depuis la source.

Détails

Les mises à jour incrémentales dans PowerShell sont équivalentes à l’utilisation de Copy if newer (incremental) dans les paramètres de copie de ShareGate Migrate.

Le paramètre de mise à jour incrémentale copie uniquement les éléments de liste et les documents dans vos listes et bibliothèques qui sont plus récents que ceux présents dans la destination.

Astuce : Nous vous recommandons de lire l’article Copy if newer (incremental) pour comprendre le fonctionnement de la fonctionnalité et ses limitations avant d’utiliser ce paramètre dans votre script.

Procédure

Pour effectuer une migration incrémentale, commencez par lancer une migration PowerShell classique, puis relancez l’opération avec un script modifié.

Pour modifier votre script afin d’effectuer une copie incrémentale :

  1. Définissez vos paramètres de copie pour utiliser la copie incrémentale dans une nouvelle variable en ajoutant la ligne suivante au début de votre script :

    $copysettings = New-CopySettings -OnContentItemExists IncrementalUpdate
  2. Ajoutez -CopySettings $copysettings à votre ligne de copie :

    Copy-Content -SourceList $srcList -DestinationList $dstList -CopySettings $copysettings

Remarque : Vous pouvez utiliser -CopySettings avec les commandes suivantes : Copy-List, Copy-Site, Copy-Content, Import-Document, Import-GoogleDriveDocument et Import-BoxDocument.

Exemples

Voici deux exemples pour vous aider à comprendre comment adapter votre script afin d’effectuer une migration incrémentale.

Avec un script de migration unique

Un script Copy-Content utilisant la copie incrémentale :

Import-Module Sharegate

# Définir les paramètres de copie
$copysettings = New-CopySettings -OnContentItemExists IncrementalUpdate

# Se connecter aux sites source et destination
$srcSite = Connect-Site -Url "http://myfarm1/sites/mysourcesite"
$dstSite = Connect-Site -Url "http://myfarm1/sites/mydestinationsite"

# Obtenir les listes source et destination
$srcList = Get-List -Name "mysrclist" -Site $srcSite
$dstList = Get-List -Name "mydstlist" -Site $dstSite

# Copier le contenu de la liste source vers la liste destination avec les paramètres de copie
Copy-Content -SourceList $srcList -DestinationList $dstList -CopySettings $copysettings

Avec un script de migration multiple utilisant une boucle foreach

Un script Import-Document avec une boucle foreach utilisant la copie incrémentale :

Import-Module Sharegate

# Définir le chemin du fichier CSV
$csvFile = "C:\MigrationPlanning\onedrivemigration.csv"

# Importer les données du CSV dans une table
$table = Import-Csv $csvFile -Delimiter ","

# Définir votre mot de passe
$mypassword = ConvertTo-SecureString 'mypassword' -AsPlainText -Force

# Définir la migration en mise à jour incrémentale.
$copysettings = New-CopySettings -OnContentItemExists IncrementalUpdate

# Définir les variables pour le site et la liste de destination
Set-Variable -Name dstSite, dstList

# Boucler sur chaque ligne du CSV
foreach ($row in $table) {
# Réinitialiser les variables précédentes pour le site et la liste de destination
Clear-Variable -Name dstSite -ErrorAction SilentlyContinue
Clear-Variable -Name dstList -ErrorAction SilentlyContinue

# Se connecter au site de destination et obtenir la liste de destination
$dstSite = Connect-Site -Url $row.ONEDRIVEURL -Username "myusername" -Password $mypassword
$dstList = Get-List -Name "Documents" -Site $dstSite

# Importer les documents du dossier source vers la liste de destination avec les paramètres de copie
Import-Document -SourceFolder $row.DIRECTORY -DestinationList $dstList -CopySettings $copysettings
}


"Cet article a été traduit à l’aide de l’intelligence artificielle. En cas de doute, veuillez vous référer à la version originale en anglais."

Avez-vous trouvé la réponse à votre question ?