SharePoint Migration Tool(SPMT)は、社内のファイルサーバーやSharePoint ServerのデータをMicrosoft 365のSharePoint・OneDrive・Teamsへ移す、Microsoftの無償ツールです。この記事では、SPMTの対応範囲と要件、ファイルサーバー移行で止まりやすいパス長・予約名・権限の事前チェック、PowerShellでの移行手順、Migration Managerへ切り替える条件を、Microsoft Learnの記載(2026年11月時点)で整理します。
まとめ:SPMTのファイルサーバー移行はパス長と権限の扱いを先に決める
SPMTは、1台のPCから移行を実行する単体ツールです。ファイルサーバー1〜数台を部署単位で移すなら、追加費用なしでSPMTだけで完結します。複数拠点の並列移行やBoxからの移行は、SharePoint管理センターのMigration Managerを使います。
移行の成否は事前準備で決まります。先に決めるのは次の4項目です。
- パスの長さ:移行先のサイト名とライブラリ名を足して400文字に収まるか
- ファイル共有の権限:既定では引き継がれないので、引き継ぐか作り直すか
- 移行量:古いファイルを日付で外すか。SharePoint Serverの版は既定10版
- 切り替え日:初回の一括移行と、差分だけを移す再実行の日程
権限を引き継いでも拒否(Deny)は移りません。移行を機にSharePointのグループで作り直したほうが、移行後の運用は軽くなります。
SPMTが何を移せて、どの環境で動くかを先に確かめます。
SharePoint 移行ツールの概要によると、移行元として扱えるのはSharePoint Server 2010・2013・2016・2019、SharePoint Foundation 2010と2013、そしてローカルとネットワークのファイル共有です。移行先はSharePointのサイト、OneDrive、Teamsです。
SharePoint Server 2010の標準ワークフローとSharePoint Designer 2010・2013のワークフローは、Power Automateのフローへ移せます。移したあとの作り込みはPower AutomateのSharePoint連携で扱っています。
移行先は、テナント全体に移すならSharePoint管理者、特定のサイトだけならそのサイトのサイト管理者の権限が要ります。移行元は読み取り権限で足ります。
SPMTのインストール手順のページは、グローバル管理者を緊急時に限るよう推奨しています。移行専用のアカウントにSharePoint管理者のロールだけを割り当てる運用が安全です。オンプレミス側が複数の認証プロバイダーを構成している場合、Windows認証は使えません。
推奨はクアッドコア・16GB・SSD150GB、通信先の許可も事前申請
SPMTの前提条件とエンドポイントに載っている要件を表にまとめます。
| 項目 | 推奨 | 最小(低速になる) |
|---|---|---|
| CPU | 64ビットのクアッドコア以上 | 64ビット1.4GHzの2コア以上 |
| メモリ | 16GB | 8GB |
| ローカルディスク | SSDで空き150GB | HDDで空き150GB |
| ネットワーク | 1Gbps | 高速なインターネット接続 |
| OS | Windows Server 2016かWindows 10以降、.NET Framework 4.6.2以降 | |
見落としやすいのは通信先です。認証用の login.microsoftonline.com、移行データを一時的に置く *.blob.core.windows.net、移行先の *.sharepoint.com など、20件ほどのエンドポイントへの通信が要ります。SPMTは既定でシステムのプロキシ設定を使わないため、プロキシ経由の社内ネットワークでは設定ファイルを書き換えます。
SPMT・Migration Manager・PowerShellの3経路の使い分け
Microsoftが用意する移行手段は次の3つです。表の「共有」はファイルサーバーのファイル共有を指します。Migration Managerの管理センターはSharePoint管理センターです。他クラウドにはBox・Dropbox・Google Workspaceが含まれます。
| 手段 | 実行場所 | 向く移行 |
|---|---|---|
| SPMT(画面) | 移行用PC 1台 | 共有1〜数台・SharePoint Server |
| SPMTのPowerShell | 移行用PC 1台 | 数十件のタスクをCSVで一括登録、夜間の定期実行 |
| Migration Manager | 管理センター+複数エージェント | 複数拠点の並列移行・他クラウドからの移行 |
Migration Managerの概要によると、複数のサーバーをエージェントとして登録し、タスクを空いているエージェントへ自動で振り分けます。移行元が1か所ならSPMTで十分です。クラウドストレージ間の移行全般はクラウドデータ移行の手順で比較しています。
ファイルサーバー移行で詰まるパス長・予約名・権限の事前チェック
長年使ったファイルサーバーには、深いフォルダーとSharePointで使えない名前が溜まっています。移行前に一覧にして片付けます。
400文字の上限にサイトのパスとライブラリ名を含める計算方法
SharePoint の制限(2026年10月更新)では、デコード後のフォルダーパスとファイル名を合わせた長さを400文字以内と定めています。ファイルサーバー上のパスが300文字でも、移行先で「sites/soumu/Shared Documents/総務部/」のような前置きが付くので、その分を足して判定します。
引っかかるのは、部署名や案件名で5階層以上掘られたフォルダーです。ファイルサーバーの上位2階層をサイトとライブラリに置き換えると、パスが短くなります。
予約名と一時ファイルを移行前にスキップか置換かで分ける判断基準
OneDrive と SharePoint の制限事項は、ファイルやフォルダーに使えない名前として .lock、CON、PRN、AUX、NUL、COM0〜COM9、LPT0〜LPT9、desktop.ini、~$ で始まる名前を挙げています。_vti_ は名前のどこに入っていても使えません。ファイルサーバーで目立つのは、Officeが作る ~$ 始まりの一時ファイルと desktop.ini です。
SharePoint 移行ツールの設定の「無効なファイル名の文字を置き換える」をオフにすると、該当ファイルはスキップされます。ただし1つのパッケージで移行先のエラーが100件を超えると、同じパッケージの正常なファイルまでブロックされます。違反の多いフォルダーは、事前に名前を直すのが確実です。
PowerShellで違反ファイルを一覧にする移行前チェックスクリプト
SPMT 4.0以降のスキャン機能はSharePoint Serverのサイト向けです。ファイルサーバーの違反の量を移行用PCの準備前に掴むなら、次のスクリプトで一覧を作れます。Windows PowerShell 5.1で動きます。
# 移行前チェック:パス長・予約名・前後の空白・250GB超を一覧にする
$Source = "\\fileserv01\share\総務部"
# 移行先で前に付くパス(サイト・ライブラリ・移行先フォルダー)
$Prefix = "sites/soumu/Shared Documents/総務部/"
$Limit = 400
$Reserved = '^(CON|PRN|AUX|NUL|COM[0-9]|LPT[0-9])(\..*)?$|^\.lock$|^desktop\.ini$|^~\$|_vti_'
Get-ChildItem -LiteralPath $Source -Recurse -Force -ErrorAction SilentlyContinue -ErrorVariable readErrors |
ForEach-Object {
$rel = $_.FullName.Substring($Source.Length).TrimStart('\') -replace '\\', '/'
$len = ($Prefix + $rel).Length
$issues = @()
if ($len -gt $Limit) { $issues += "パス長$len" }
if ($_.Name -match $Reserved) { $issues += "予約名" }
if ($_.Name -ne $_.Name.Trim()) { $issues += "前後の空白" }
if (-not $_.PSIsContainer -and $_.Length -gt 250GB) { $issues += "250GB超" }
if ($issues.Count -gt 0) {
[pscustomobject]@{ Path = $_.FullName; Length = $len; Issue = ($issues -join ",") }
}
} | Export-Csv -Path ".\precheck.csv" -NoTypeInformation -Encoding UTF8
"読み取れなかったパス:$($readErrors.Count)件"
$Prefix には、移行先のサイトのパスからライブラリ、移行先フォルダーまでを入れます。日本語のサイトでもURL上のライブラリ名は「Shared Documents」のことが多いので、ブラウザーで開いたURLでの確認が必要です。出力された precheck.csv はフォルダーの持ち主に配り、名前の変更や不要ファイルの削除を依頼します。
260文字を超えるパスを読むためのレジストリ設定と.NETの条件
最後の「読み取れなかったパス」が0件でなければ、Windows側の260文字制限に当たっています。PowerShell を使用して SharePoint に移行するのページでは、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework に AppContext キーを作り、Switch.System.IO.BlockLongPaths と Switch.System.IO.UseLegacyPathHandling の2つを false にする回避策を示しています。
400文字までのパスを移すには、PowerShell 5.xと.NET Framework 4.6.2以降が必要です。PowerShell 6.0以降(PowerShell 7を含む)はSPMTのコマンドレットに対応していないため、移行用PCではWindows PowerShell 5.1で作業します。
SPMTの画面とPowerShellで移行タスクを作成して実行する手順
事前チェックが済んだら、移行タスクを作ります。少量なら画面、部署ごとにタスクが多いならPowerShellが向いています。
画面でのファイル共有移行を「新しい移行の追加」から進める5操作
SPMTのダウンロードは、インストール手順のページにある一般提供版のリンクから行います。SPMTのリリースノートでは、2026年11月時点の最新ビルドは4.1.130.4です。起動後の流れは次のとおりです。
- 移行先テナントの管理者アカウントでサインインする
- ホーム画面で「ファイル共有の移行」から新しい移行を追加する
- 移行元として共有フォルダーのパス(例:\\fileserv01\share\総務部)を指定する
- 移行先のサイトURLとライブラリ、必要ならライブラリ内のフォルダーを選ぶ
- 設定を確認して移行を開始し、進行状況ページで完了を待つ
進行状況ページには経過時間と残り時間の見積もりが出ます。初回の小さな移行で1時間あたりの量を掴んでから、本番の日程を組んでください。
テナント容量に収めるための版の数・日付・拡張子による移行量の設定
移行量はテナントの容量を直接消費します。Register-SPMTMigrationのリファレンスによると、SharePoint Serverから移すファイルの版は既定で10版までが移行対象です。版が数百あるライブラリは、版の数を絞ります。
ファイルサーバーで効くのは更新日のフィルターです。10年以上更新の無いファイルは「次の日以降に変更されたファイルを移行する」で外し、別の保管先へ回します。拡張子の除外はドットを付けず、tmp:bak のようにコロンで区切る形式です。容量の計算はSharePointの容量確認と削減で解説しています。
CSVで部署ごとのタスクを一括登録するPowerShellの実行例
SPMTをインストールすると、PowerShellのモジュールも入ります。次の例は、最初にスキャンだけを実行してレポートを確かめ、問題が無ければ $ScanOnly を $false に変えて本番を流す構成です。
Import-Module Microsoft.SharePoint.MigrationTool.PowerShell
$ScanOnly = $true # 1回目はスキャンだけ。レポートを確かめてから $false にする
# 多要素認証を有効にしたテナントでは -SPOCredential を付けず、サインイン画面で認証する
Register-SPMTMigration -Force `
-ScanOnly $ScanOnly `
-PreserveUserPermissionsForFileShare $true `
-MigrateFilesModifiedAfter (Get-Date "2018-04-01") `
-WorkingFolder "D:\SPMT"
# tasks.csv の1行=1タスク:移行元, 移行先サイト, ライブラリ名, ライブラリ内のフォルダー
$tasks = Import-Csv ".\tasks.csv" -Header Source, Site, List, Folder
foreach ($t in $tasks) {
Add-SPMTTask -FileShareSource $t.Source -TargetSiteUrl $t.Site `
-TargetList $t.List -TargetListRelativePath $t.Folder
}
Start-SPMTMigration -NoShow
$session = Get-SPMTMigration
while ($session.Status -ne "Finished") {
foreach ($s in $session.StatusOfTasks) { $s.MigratingProgressPercentage }
Start-Sleep -Seconds 60
}
tasks.csv は見出し行を付けず、1行に1タスクを書きます。
\\fileserv01\share\総務部,https://contoso.sharepoint.com/sites/soumu,Documents,総務部
\\fileserv01\share\経理部,https://contoso.sharepoint.com/sites/keiri,Documents,経理部
Microsoftのサンプルは -SPOCredential にパスワードを平文で書いていますが、多要素認証のテナントではこの引数を使わないようリファレンスに明記されています。-WorkingFolder には空き150GB以上のディスクを指定します。既定はユーザープロファイル配下なので、Cドライブが小さい端末は容量不足になりがちです。ライブラリ名はMicrosoftのサンプルに合わせて Documents としました。日本語のサイトでは、スキャンだけの1回目で移行先が正しく解決されるかを確かめます。
ファイルサーバーの差分再実行を前提にした本番切り替えまでの3段階
SPMTは同じタスクを再実行すると、移行先より新しいファイルだけを移します。SPMT でサポートされる機能での、この処理の呼び名は増分です。この仕組みを使うと、業務を止める時間を短くできます。
- 初回移行:平日夜間や週末に全量を移す。社員はファイルサーバーを使い続ける
- 差分移行:切り替えの数日前に再実行し、初回以降の変更分だけを移す
- 切り替え:ファイルサーバーを読み取り専用にしてから最後の差分を流し、案内を出す
公式の説明で増分の対象とされているのは、移行元で新しく作られたファイルと更新されたファイルです。移行元で削除したファイルが移行先からも消えるという記載はありません。最後の差分の前に移行元を読み取り専用にするのは、このずれを増やさないためです。チェックアウト中のファイルは、チェックイン済みの版だけが移ります。
移行後にアクセス権が崩れる原因と移行前のユーザーマッピングの設計
移行後に「フォルダーが見えない」「見えてはいけない人に見える」が起きる原因は、SPMTの権限の扱いを確かめずに移したことにあります。既定値と、引き継がれない権限の種類を先に押さえます。
NTFSの読み取り・書き込み・フルコントロールが変わる対応関係
ファイル共有の権限を引き継ぐ設定(PowerShellでは -PreserveUserPermissionsForFileShare)は、既定でオフです。オフのまま移すと、ファイルは移行先ライブラリの権限をそのまま継承します。オンにした場合の対応は移行時のファイルとフォルダーのアクセス許可に載っています。
| ファイルサーバーの権限 | SharePointでの権限 |
|---|---|
| 読み取り | 読み取り |
| 書き込み | 投稿 |
| フルコントロール | フルコントロール |
| 拒否(Deny)などの特殊なアクセス許可 | 移行されない |
拒否で「経理フォルダーの中の人事資料だけ見せない」としていた構成は、移行すると全員に見える状態になります。拒否を使っているフォルダーは、事前に icacls などで洗い出し、移行先で別のライブラリに分けるか、権限を作り直す前提で計画します。
移行時に個別権限の数とアイテム数の上限に先に当たる構成の判断基準
権限を引き継ぐと、フォルダーごとに継承が切れた状態で移ります。SharePoint の制限では、リストやライブラリ内で個別の権限を持てるアイテムの上限は50,000、推奨は5,000です。さらに10万を超えるアイテムを含むライブラリやフォルダーは、継承を解除することも戻すこともできません。
ファイルサーバーの権限を細かく設定してきた組織ほど、この推奨値を超えます。判断はこうです。個別権限のあるフォルダーが数十を超えるなら、権限は引き継がず、部署やプロジェクトの単位でサイトかライブラリを分け、SharePointのグループで付け直します。権限レベルの設計と棚卸しの方法はSharePointのアクセス権設定で手順を解説しています。
AD同期の無い環境でユーザーマッピングファイルを使う対応づけの方法
権限を引き継ぐには、ファイルサーバー側のユーザーとMicrosoft Entra IDのユーザーの対応づけが要ります。Active DirectoryをEntra IDへ同期していれば、既定でオンの自動ユーザーマッピングで対応可能です。同期していない場合は、両方のアカウントを並べたユーザーマッピングファイルを作って読み込みます。
独自のマッピングファイルを使うときは、自動ユーザーマッピングをオフにします。オンのままだと、ファイルに無いユーザーをEntra IDで探しにいき、意図しないアカウントに権限が付くおそれがあるためです。対応づかなかったユーザーは UserNotMapped.csv のレポートに出るので、本番前のスキャンで0件になるまで直します。
SPMTで足りる移行と外部の導入支援に任せる移行を分ける判断基準
SPMTは無償で手順も公開されていますが、手間がかかるのは移行先の設計と切り替えの段取りです。
SPMTで完結する条件:1台・数TB未満・部署単位の単純な権限
次の条件をすべて満たすなら、情シス1〜2人でSPMTを使って完結できます。
- 移行元のファイルサーバーが1〜数台で、同じ拠点にある
- 移行量がテナントの空き容量に収まり、数TB未満である
- 権限が部署単位で、拒否や個人単位の設定がほとんど無い
- 事前チェックで400文字超や予約名のファイルが数百件以内に収まる
この規模なら、移行先は部署ごとのチームサイトで足ります。サイトの作り方や外部共有の初期設定はSharePoint管理センターの初期設定を先に済ませておくと、移行後に設定を変えて混乱する事態を避けられます。
SPMTを選ばない場面:複数拠点の並列移行と他クラウドからの移行
拠点ごとにファイルサーバーがあり、移行用PCを各拠点に置いて同時に進めたいなら、SPMTではなくMigration Managerを使います。SPMTは移行用PC 1台で実行するツールなので、複数のPCに分けると進行状況とレポートが端末ごとに散らばります。BoxやDropbox、Google Workspaceからの移行も、SPMTの対象外でMigration Managerの領分です。
SharePoint Serverのカスタム開発部分も移りません。SPMTが移せるのは、コーディングやサードパーティ製のツールを使っていない既定のサイトです。カスタム部分は作り直す前提で、移行と開発を分けて見積もります。
全社の権限設計や部署間調整を伴う移行計画を外部の導入支援に相談する目安
権限を作り直す範囲が全社に及ぶとき、ファイルサーバーの持ち主が部署ごとにいて調整が要るとき、移行後にTeamsとの連携や情報の置き場所のルールまで決めたいときは、移行作業よりも設計と合意形成が重くなります。一創のMicrosoft 365・Copilot導入支援では、移行前の棚卸しとサイト構成の設計、権限の作り直し、移行後の運用ルールづくりまでを支援しています。
SharePointのごみ箱や版はバックアップではありません。ファイルサーバーのバックアップに代わる手段をSharePointのバックアップと復元で確かめてから、ファイルサーバーを停止します。
SPMTの導入前に寄せられやすい質問に、公式ドキュメントの記載をもとに答えます。
無料です。Microsoft LearnはSPMTを「無料で使いやすい移行ソリューション」と説明しています。必要なのは移行先のMicrosoft 365のライセンスと、テナントの容量です。容量は組織全体の1TBにライセンスあたり10GBを足した値で、不足すれば追加容量を購入します。独自のAzure Storageを経由させる設定では、Azureの帯域幅料金がかかる可能性があります。
SPMTでOneDriveやTeamsにも移行できますか?
できます。移行先の選択画面で、SharePointのサイトのほか、ユーザーのOneDriveやTeamsのチームとチャネルを選べます。個人のホームフォルダーはOneDriveへ、部署の共有フォルダーはTeamsかSharePointのサイトへ分けるのが一般的です。置き場所の決め方はSharePointとOneDriveの違いで整理しています。
移行中も社員はファイルサーバーを使い続けられますか?
使い続けられます。SPMTは移行元を読み取るだけで、ファイルサーバー側を書き換えたり止めたりしません。移行中に更新されたファイルは、同じタスクを再実行したときに差分として移ります。設定の「移行の自動再実行」で、選べるのは1回だけの再実行か、最大5回まで続ける再実行です。ただし差分の対象は新規と更新のファイルなので、切り替え直前はファイルサーバーを読み取り専用にしてから最後の差分を流します。
移行にはどれくらいの時間がかかりますか?
移行元のディスク、社内ネットワーク、インターネット回線、ファイルの数と大きさで変わるため、一律の目安はありません。移行パフォーマンスの向上のページは、移行用PCをファイルサーバーの近くに置き、作業フォルダーを高速なSSDに向けるよう勧めています。最初に1部署分を移して実測し、その数字で全体の日程を組んでください。
SPMTのスキャンでは何を確認できますか?
SPMT 4.0以降では、SharePoint Serverのサイトを移行前にスキャンし、コンテンツの量と移行時のリスクをダッシュボードで確かめられます。公開されているスキャン評価エラーコードで、リスクの内容を確認可能です。ファイルサーバーは「スキャンのみを実行」をオンにしてタスクを流すと、ファイルを移さずFilesReport.csvなどのレポートだけを作れます。
関連記事
- SharePointとは?できること・OneDriveやTeamsとの違いと導入判断の基準:移行先としてのSharePointの役割と導入判断。
- SharePointのアクセス権設定|権限レベル・継承の解除・共有リンクとPowerShell棚卸し:移行後の権限を作り直すときの設計と棚卸し。
- SharePointの容量確認と削減|計算式・PowerShell・バージョン履歴の設定手順:移行量とテナント容量の見積もり。
- SharePointのバックアップと復元|ごみ箱・版・Microsoft 365 Backupの範囲と設定手順:ファイルサーバー停止前に決めるデータ保護。
- クラウドデータ移行の手順とは?移行ツール・整合性検証・大容量転送の実務を実装者向けに解説:SharePoint以外も含めた移行の進め方と検証。