Hinweis: Für die PowerShell-Integration ist ein ShareGate Migrate Pro- oder Enterprise-Abonnement erforderlich. Sie ist im Essentials-Plan nicht verfügbar.
Um zu vermeiden, dass Sie Ihre Anmeldeinformationen bei jeder Verbindung in einer foreach-Schleifenanweisung mit Browser authentication und moderner Authentifizierung eingeben müssen, können Sie den PowerShell-Parameter -UseCredentialsFrom verwenden, um eine einzelne Verbindung zu erstellen und die Anmeldeinformationen dieser Verbindung in Ihrem Skript wiederzuverwenden.
-UseCredentialsFrom
Um zu veranschaulichen, wie -UseCredentialsFrom funktioniert, hier ein einfaches Verbindungsskript:
# 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
Wenn Sie dieses Skript ausführen, öffnet sich ein Browserfenster, in dem Sie sich mit mysitecollection1 verbinden können. Sobald die Verbindung hergestellt ist, verwendet das Skript automatisch diese erste Verbindung, um sich mit mysitecollection2 und mysitecollection3 zu verbinden.
-UseCredentialsFrom mit einer foreach-Schleife verwenden
Eine foreach-Schleifenanweisung verwendet in der Regel Klammern, um Verbindungs- und Kopierbefehle für jede Zeile einer CSV-Datei mit der App zu wiederholen. Hier ein Beispiel:
# 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
}
Wenn Sie dieses Skript ausführen, werden Sie vor der foreach-Anweisung aufgefordert, Ihre Anmeldeinformationen in einem Browserfenster einzugeben.
Die Verbindung wird in der Variable $dstsiteConnection gespeichert, die bei jedem Durchlauf der Schleife über -UseCredentialsFrom $dstsiteConnection wiederverwendet wird.
So müssen Sie Ihre Anmeldeinformationen nicht für jede zu kopierende Site erneut eingeben.
Hinweis: Vermeiden Sie es, für die Variable $dstsiteConnection eine der in Ihrer CSV-Datei aufgeführten URLs zu verwenden. Wenn Sie eine der aufgeführten URLs verwenden, löscht der Befehl Clear-Variable Ihre Anmeldeinformationen.
Eine gespeicherte Verbindung sitzungsübergreifend wiederverwenden
Der Parameter -UseCredentialsFrom verwendet eine Verbindung innerhalb desselben Skripts wieder. Um eine Verbindung sitzungsübergreifend wiederzuverwenden, speichern Sie sie beim Verbinden mit -SaveConnection im Connection Manager. Anschließend können Sie sie später mit Get-SharePointConnection abrufen und sie mit -UseConnection an Connect-Site oder Connect-Tenant übergeben.
$connection = Get-SharePointConnection -Id 01c0ebab-a17e-4ae3-9caf-ba09f05f2970
Connect-Site -Url "http://mytenantdomain/sites/mysitecollection" -UseConnection $connection
Weitere Informationen finden Sie unter Get-SharePointConnection.
Dieser Artikel wurde mit künstlicher Intelligenz übersetzt. Bei Unklarheiten konsultieren Sie bitte die englische Originalversion.
