SharePoint Onlineへの移行について
数えられる程度のファイル数なら手作業で移行してもいいですが、ファイルが多いようならMicrosoft公式からSPMT(SharePoint Migration Tool)というツールが提供されているのでそれを使用するのが良いと思います。
このツールはGUIとPowerShellによるCUIの両方をサポートしています。
この記事ではCUIを使用してオンプレミスのファイルをMicrosoft 365(旧Office 365)のSharePoint Onlineへ移行する方法を記述します。
SPMTインストール
以下より、SPMTをインストールしてください。
https://docs.microsoft.com/ja-jp/sharepointmigration/how-to-use-the-sharepoint-migration-tool
PowerShellスクリプト作成
JSONファイル(spmt.json)から移行タスク情報を読み込んで実行します。
ユーザー名、パスワードは1行目で別ファイル(.env)から読み取っています。
3つのファイルは同じ階層に置きます。JSONファイルはSJISにしてください。
$conf = Get-Content .env -Raw | ConvertFrom-StringData
# Define SharePoint target#
$UserName = $conf.msUserName
$PassWord = ConvertTo-SecureString -String $conf.msUserPassword -AsPlainText -Force
$SPOCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, $PassWord
# Import SPMT Migration Module#
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
# Register the SPMT session with SharePoint credentials#
Register-SPMTMigration -SPOCredential $SPOCredential -Force
# Load JSON:
$jsonItems = Get-Content -Raw -Path "./spmt.json" | ConvertFrom-Json
ForEach ($taskItem in $jsonItems.Tasks)
{
$jsonString = ConvertTo-Json $taskItem -Depth 100
Add-SPMTTask -JsonDefinition $jsonString
}
# Start Migration in the console. #
Start-SPMTMigration
msUserName=urushibata@example.onmicrosoft.com
msUserPassword=12345678
{
"Tasks": [
{
"SourcePath": "C:\\\\Users\\urushibata\\Desktop\\移行テスト",
"TargetPath": "https://my-company.sharepoint.com/sites/traial",
"TargetList": "Shared Documents",
"TargetListRelativePath": ""
}
]
}
SourcePath・・・移行元パス。ファイルサーバーへのパスでもオンプレミスのSharePointのURLでも可能です。
TargetPath・・・移行先のSharePointのサイトのルートパスを設定します。
TargetList・・・ドキュメントを指定しています。ここで結構はまったのですが、だいたいのMSのマニュアルには「Documents」と書いてあったのですが「Documents」では403エラーが発生します。「Shared Documents」が正しいです。ドキュメントのルートのURLが「Shared%20Documents」となっているのを確認してください。
TargetListRelativePath・・・TargetList以下のサブフォルダを指定する場合設定します。
スクリプト実行
スクリプトを実行すれば完了します。