メインコンテンツにスキップ

PowerShell で増分移行を実行する

注: PowerShell 統合には、ShareGate Migrate の Pro または Enterprise サブスクリプションが必要です。Essentials プランでは利用できません。

スクリプトを変更して、ソースから新しいアイテムのみをコピーする 2 回目の移行を実行できます。

詳細

PowerShell における増分更新は、ShareGate Migrate の コピー設定Copy if newer (incremental) を使用することと同等です。

増分更新パラメーターは、リストやライブラリ内のリスト アイテムやドキュメントのうち、コピー先の対応する項目より新しいものだけをコピーします。

ヒント: スクリプトでこの設定を使用する前に、機能の仕組みと制限事項を理解するために、Copy if newer (incremental) の記事を読むことをお勧めします。

手順

増分移行を実行するには、まず通常の PowerShell 移行を実行し、その後、変更したスクリプトで操作を再実行します。

スクリプトを変更して増分コピーを実行するには、次の操作を行います。

  1. スクリプトの先頭に次の行を追加して、増分コピーを使用するコピー設定を新しい変数で定義します。

    $copysettings = New-CopySettings -OnContentItemExists IncrementalUpdate
  2. コピー行に -CopySettings $copysettings を追加します。

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

注: -CopySettings は、次のコマンドで使用できます: Copy-ListCopy-SiteCopy-ContentImport-DocumentImport-GoogleDriveDocumentImport-BoxDocument

スクリプトを増分移行用に調整する方法を理解するのに役立つ、2 つの例を紹介します。

単一の移行スクリプトを使用する場合

増分コピーを使用する Copy-Content スクリプト:

Import-Module Sharegate

# Define copy settings
$copysettings = New-CopySettings -OnContentItemExists IncrementalUpdate

# Connect to source and destination sites
$srcSite = Connect-Site -Url "http://myfarm1/sites/mysourcesite"
$dstSite = Connect-Site -Url "http://myfarm1/sites/mydestinationsite"

# Get source and destination lists
$srcList = Get-List -Name "mysrclist" -Site $srcSite
$dstList = Get-List -Name "mydstlist" -Site $dstSite

# Copy content from source list to destination list with copy settings
Copy-Content -SourceList $srcList -DestinationList $dstList -CopySettings $copysettings

foreach ループ ステートメントを使用する複数移行スクリプトの場合

Import-Module Sharegate

# Define CSV file path
$csvFile = "C:\MigrationPlanning\onedrivemigration.csv"

# Import CSV data into a table
$table = Import-Csv $csvFile -Delimiter ","

# Define your password
$mypassword = ConvertTo-SecureString 'mypassword' -AsPlainText -Force

# Set your migration to Incremental update.
$copysettings = New-CopySettings -OnContentItemExists IncrementalUpdate

# Set variables for destination site and list
Set-Variable -Name dstSite, dstList

# Loop through each row in the CSV
foreach ($row in $table) {
# Clear previous variables for destination site and list
Clear-Variable -Name dstSite -ErrorAction SilentlyContinue
Clear-Variable -Name dstList -ErrorAction SilentlyContinue

# Connect to the destination site and get destination list
$dstSite = Connect-Site -Url $row.ONEDRIVEURL -Username "myusername" -Password $mypassword
$dstList = Get-List -Name "Documents" -Site $dstSite

# Import documents from source folder to destination list with copy settings
Import-Document -SourceFolder $row.DIRECTORY -DestinationList $dstList -CopySettings $copysettings
}

この記事はAIによって翻訳されています。ご不明な点がある場合は、英語の原文をご確認ください。

こちらの回答で解決しましたか?