注: PowerShellとの連携には、ShareGate MigrateのProまたはEnterpriseサブスクリプションが必要です。Essentialsプランでは利用できません。
PowerShellを使用して、Box.comからOneDrive for Businessへの移行を自動化します。
注: 2026年1月末以降、MicrosoftはIDCRL Cookieの段階的な廃止を開始しました。これにより、ほとんどのMicrosoft 365テナントで、パラメーター-Browserおよび-ModernAuthを使用するブラウザーおよびModern Authentication方式のみが機能するようになります。この変更の詳細については、Microsoft 365における「その他のユーザー」認証の重要な変更を参照してください。
前提条件
OneDriveがプロビジョニングされていること(Get-OneDriveURLコマンドレットで自動化できます)。
注: より高い管理者権限を持っている場合でも、各OneDriveでサイトコレクション管理者である必要があります。SharePoint管理者またはグローバル管理者権限を使用して、すべてのOneDriveにサイトコレクション管理者権限を適用します。その後、PowerShellスクリプトは各Box.comアカウントを移行する際にサイトコレクション管理者権限を削除します。
手順
ヒント: ドキュメントをOneDrive内の新しいフォルダーに移行するには、ウォークスルー - PowerShellを使用して新しいOneDriveフォルダーに移行するを参照してください。
すべてのOneDriveで自分自身をサイトコレクション管理者として設定する
ShareGate Migrateを開きます。
すべてのレポートに移動します。
右上隅のカスタムレポートを作成をクリックします。
オブジェクトタイプとしてOneDrive for Businessを選択します。
保存せずに続行をクリックします。
テナントを選択します。
実行をクリックします。
リストの一番上にあるチェックマークボックスで、すべてのOneDriveを選択します。
クイックアクションメニューで編集をクリックします。
変換ドロップダウンで管理者の追加を選択します。
表示されたユーザーまたはグループの選択フィールドでアカウントを検索して追加します。
適用をクリックします。
スクリプトを作成する
次のスクリプトをコピーして、お好みのPowerShellアプリケーションに貼り付けます。
Import-Module Sharegate
# Connect to Box
$box = Connect-Box -Email [email protected] -Admin
# Get all Box users
$users = Get-BoxUsers -Box $box
# Connect to the SharePoint tenant
$tenant = Connect-Site -Url https://mytenant-admin.sharepoint.com -ModernAuth
# Loop through each user
foreach ($user in $users) {
# Check if the user is not inactive
if ($user.Status -ne 'inactive') {
# Get the user's OneDrive site URL
$dstSiteUrl = Get-OneDriveUrl -Tenant $tenant -Email $user.Email
# Connect to the user's OneDrive site
$dstSite = Connect-Site -Url $dstSiteUrl -UseCredentialsFrom $tenant
# Get the "Documents" list from the user's OneDrive site
$dstList = Get-List -Site $dstSite -Name "Documents"
# Import documents from Box to the OneDrive "Documents" list
Import-BoxDocument -Box $box -DestinationList $dstList -UserEmail $user.Email
# Remove site collection administrator permissions
Remove-SiteCollectionAdministrator -Site $dstSite
}
}
ご自身の環境に合わせてスクリプトを調整してください。以下にいくつかのガイドラインを示します。
$box: メールアドレスを、ご自身のBox.com管理者のメールアドレスに置き換えてください。
$tenant: URLをテナントの管理センターに合わせて変更してください。
Connect-site: SharePointサイトまたはOneDrive for Businessに接続するためのコマンドです。Modern Authenticationから認証方式を変更する必要がある場合は、Connect Siteを参照してください。
foreach: 一連の値をループ処理するために使用します。この場合、foreachの括弧内のすべてのコマンドが、Box.comアカウント内の各ユーザーに対して繰り返されます。
-UseCredentialsFrom: このスクリプトは、単一の接続を再利用するために-UseCredentialsFromパラメーターを指定したModern Authenticationを使用します。このスクリプトは、開始時にMicrosoft 365の認証情報の入力を求めます。テナントでMFAが強制されていない場合は、無人スケジュール実行のためにユーザー名とパスワードを使用するようスクリプトを設定できます。詳細については、Connect-SiteおよびブラウザーおよびModernの接続方法で認証情報の入力を繰り返さないようにするを参照してください。
Remove-SiteCollectionAdministrator: 移行後にOneDrive上のユーザーアカウントのサイトコレクション管理者権限を削除します。詳細については、サイトコレクション管理者を削除するを参照してください。
適切に調整してテストしたら、スクリプトを実行してください。
考慮事項
-ModernAuthを使用するModern Authenticationは、Microsoft 365において最も安全で永続的な認証方式であり、多要素認証(MFA)が強制されていない限り、UsernameおよびPassword変数と組み合わせて使用できます。いくつかの制限事項もあります。この接続方法のさまざまな使い方や、必要に応じてブラウザー認証への切り替え方法については、Connect-Siteを参照してください。
Box.comのユーザーのルートフォルダーのコンテンツは移行できますが、フォルダー自体は移行できません。Box.comのコンテンツをOneDrive for Business内の別のフォルダーに移行したい場合は、先に移行先フォルダーを作成する必要があります。
移行レポートは自動的に生成され、タスクで確認できます。Export-Reportを使用して、スクリプト内でレポートをエクスポートすることもできます。
PowerShellを使用して移行をスケジュールし、業務時間外に実行してパフォーマンスを最適化することもできます。
増分移行を実行するには、PowerShellを使用した増分更新の記事を参照してください。
ShareGate Migrateのコピーオプションを再現する方法については、PowerShellのコピーオプションを参照してください。
ユーザーが所有しているファイルのみが移行されます。ユーザーが共同編集者またはファイルの共同所有者である場合、そのファイルは移行時にコピーされません。
パフォーマンスに大きな問題が発生する場合は、Box.comのスロットリングを参照してください。
スクリプトのエラーとテスト: 広く適用する前に、少数のOneDriveアカウントでPowerShellスクリプトをテストしてください。テストによって、潜在的な問題を限定された範囲で特定できます。
この記事はAIによって翻訳されています。ご不明な点がある場合は、英語の原文をご確認ください。
