Note : L’intégration PowerShell nécessite un abonnement Pro ou Enterprise à ShareGate Migrate. Elle n’est pas disponible avec le plan Essentials.
Pour éviter de saisir vos informations d'identification à chaque connexion dans une instruction foreach loop avec l’authentification par navigateur et l’authentification moderne, vous pouvez utiliser le paramètre PowerShell -UseCredentialsFrom pour créer une seule connexion et réutiliser les informations d'identification de cette connexion dans votre script.
-UseCredentialsFrom
Pour illustrer le fonctionnement de -UseCredentialsFrom, voici un script de connexion de base :
# Connect to the first SharePoint site using browser authentication and store the connection
$connection = Connect-Site -Url "http://mytenant/sites/mysitecollection1" -ModernAuth
# Use the stored credentials to connect to the second SharePoint site
Connect-Site -Url "http://mytenant/sites/mysitecollection2" -UseCredentialsFrom $connection
# Use the same stored credentials to connect to the third SharePoint site
Connect-Site -Url "http://mytenant/sites/mysitecollection3" -UseCredentialsFrom $connection
Lorsque vous exécutez ce script, une fenêtre de navigateur s’ouvre pour vous permettre de vous connecter à mysitecollection1. Une fois la connexion établie, le script utilisera automatiquement cette première connexion pour se connecter à mysitecollection2 et mysitecollection3.
Comment utiliser -UseCredentialsFrom avec une boucle foreach
Une instruction foreach loop utilise généralement des accolades pour répéter les commandes de connexion et de copie pour chaque ligne d’un fichier CSV avec l’application. Voici un exemple :
# Import the Sharegate module
Import-Module ShareGate
# Define the path to the CSV file containing site information
$csvFile = "C:\CSV\CopySites.csv"
# Import the CSV file into a table using a comma as the delimiter
$table = Import-Csv $csvFile -Delimiter ","
# Define source site credentials
$srcUsername = "sourceusername"
$srcPassword = ConvertTo-SecureString 'sourcepassword' -AsPlainText -Force
# Connect to the destination site using browser authentication and store the connection
$dstsiteConnection = Connect-Site -Url "https://tenantname.sharepoint.com/sites/sitename" -Browser
# Declare variables for source and destination sites
Set-Variable -Name srcSite
Set-Variable -Name dstSite
# Loop through each row in the CSV table and copy sites from source to destination
foreach ($row in $table) {
# Clear any existing variable values for source and destination sites
Clear-Variable -Name srcSite
Clear-Variable -Name dstSite
# Connect to the source site using credentials
$srcSite = Connect-Site -Url $row.SourceSite -Username $srcUsername -Password $srcPassword
# Connect to the destination site using the stored credentials from the browser connection
$dstSite = Connect-Site -Url $row.DestinationSite -UseCredentialsFrom $dstsiteConnection
# Copy the source site to the destination site with merging and subsites included
Copy-Site -Site $srcSite -DestinationSite $dstSite -Merge -Subsites
}
Lorsque vous exécutez ce script, il vous sera demandé de saisir vos informations d'identification dans une fenêtre de navigateur avant l’instruction foreach.
La connexion est stockée dans la variable $dstsiteConnection, qui est réutilisée à chaque passage de -UseCredentialsFrom $dstsiteConnection dans la boucle.
Cela vous permet de ne pas avoir à ressaisir vos informations d'identification pour chaque site copié.
Note : Évitez d’utiliser l’une des URL listées dans votre CSV pour la variable $dstsiteConnection. Si vous utilisez l’une de ces URL, la commande Clear-Variable effacera vos informations d'identification.
"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."
