OneDrive へ移行したのに「パス(フルパス)が長すぎる」と表示され、同期できない/ファイルが開けないケースは珍しくありません。特に病院などでファイルサーバーの深い階層をそのまま移行すると、Windows と OneDrive/SharePoint の制限が重なり大量の対象が発生します。手作業に頼らず、効果の大きい順に解決策を整理します。
「パスが長すぎる」問題は、どこで起きているのか
まず押さえるべきポイントは、同じ「長すぎる」でも原因が1つではないことです。多くの場合、次の2系統の制限が重なります。
- Windows 側のパス長制限(従来の Win32 アプリが前提にしてきた約260文字の制限)
- OneDrive/SharePoint 側の制限(サービスや同期クライアントが許容するパス長・文字種・名前の制約)
| 制限がかかる場所 | 代表的な上限・条件(目安) | 起きやすい症状 | 効きやすい対策 |
|---|---|---|---|
| Windows(従来のアプリ/API) | フルパスが約260文字付近で失敗しやすい | エクスプローラーで開けない/Officeで保存できない/コピーでエラー | 長いパスの有効化、ベースパス短縮、アプリ更新 |
| OneDrive 同期クライアント | 同期対象のパス長・禁止文字・ファイル名規則に引っかかると同期不可 | 「同期できないアイテム」一覧に大量表示、クラウドと差分が埋まらない | 同期ルート短縮、階層整理、選択同期、オンデマンド |
| SharePoint/OneDrive(サーバー側) | URL(=パス)換算の上限、禁止文字・予約語、名前の長さ制限 | アップロード不可、移行ツールでエラー、Webでも開けない | サイト/ライブラリ名短縮、フォルダー設計見直し、移行前スキャン |
最短で成果が出る優先順位:まずは「全体のパス」を圧縮する
大量のファイルが対象で、全件リネームが現実的でない場合は、個別のファイル名を触る前に、まず“全体のパス”を短くするのが鉄則です。なぜなら、フルパスは次の足し算で伸びていくからです。
フルパス = (同期ルートの長さ)
+(サイト名・ライブラリ名相当)
+(フォルダー階層の合計)
+(ファイル名)
深い階層を持つファイルサーバー構造をそのまま移行すると、ここに 「OneDrive – 組織名」やサイト名が上乗せされ、移行前はギリギリでも移行後に一気に超過する…という現象がよく起きます。
事前にやっておくと事故が減る:影響範囲の“見える化”
対策を打つ前に、まずは「どの程度、何が原因で弾かれているか」を把握します。現場でよく効く見える化は次の3つです。
- OneDrive の「同期の問題」(同期できないアイテムの一覧)をエクスポート/スクリーンショットで保存
- 移行ツールのログ(SharePoint Migration Tool など)でエラー種別を分類
- ファイルサーバー側でパス長を棚卸しし、「長い順ランキング」を作る
見える化すると、意外にも「ごく一部の上位フォルダー名が長すぎて全滅している」「部署名が長いだけで大半が救える」など、少ない変更で大きく改善できるポイントが見つかります。
Windows 側の長いパス対応を有効化する(GPO/レジストリ)
Windows 10/11 や Windows Server の比較的新しい環境では、OSとしては長いパスに対応できます。ただし、OS設定を有効化しても、すべてのアプリが自動的に救われるわけではない点が重要です。古いアプリや古いコンポーネントは、従来どおり260文字付近で失敗することがあります。
代表的な有効化方法
組織利用(病院・法人)では、端末が多数のためGPO(グループポリシー)での一括適用が現実的です。個別端末ならレジストリでも対応できます。
| 方法 | 設定場所 | ポイント |
|---|---|---|
| グループポリシー(推奨) | 「コンピューターの構成」→「管理用テンプレート」→「システム」→「ファイルシステム」 | 「Win32 の長いパスを有効にする」を有効化。適用後に再起動が必要なケースあり。 |
| レジストリ | HKLM\SYSTEM\CurrentControlSet\Control\FileSystem | LongPathsEnabled を 1 に。変更後は再起動推奨。 |
注意:この設定は「Windowsが長いパスを扱えるようになる」ための土台です。OneDrive同期クライアントやアプリ側の制限、SharePoint側の制限は別問題として残るため、次の「同期ルート短縮」とセットで考えると効果が出やすいです。
同期フォルダーを短い場所へ移動して“ベースパス”を圧縮する
全件リネームが無理なとき、最も即効性が高いのがOneDrive の同期場所(ルート)を短くする方法です。フルパスの先頭が短くなるだけで、全ファイルが一斉に救われる可能性があります。
どれだけ効くのか(イメージ)
例えば既定の同期場所は次のように長くなりがちです。
- 既定:
C:\Users\<ユーザー名>\OneDrive - <組織名>\ - 短縮:
C:\OD\やD:\OD\など
| 項目 | 既定の例 | 短縮後の例 | 期待できる効果 |
|---|---|---|---|
| 同期ルートの長さ | ユーザープロファイル+組織名で長くなりやすい | 2〜5文字程度の固定パスにできる | 全ファイルのフルパスを一律で圧縮 |
| 管理 | ユーザー名の揺れ・PC入替で変化 | 端末標準化しやすい | 運用ルール化しやすい |
移動の手順(基本)
- OneDrive クライアントの設定画面を開く(タスクトレイの雲アイコン)
- 「アカウント」関連でPCのリンク解除または同期場所の変更に進む
- 再サインイン時に同期場所として
C:\OD\のような短いパスを指定する - 再同期後、問題の多かったフォルダーが同期できるか確認する
端末台数が多い場合は、端末展開(Intune など)や手順書で標準化し、「同期先は必ず短いパス」を組織ルールにしておくと再発が減ります。
Files On-Demand と選択同期で「全部同期」をやめる
「全フォルダーを同期する」運用は、深い階層や大量データがあると破綻しやすいです。とくに病院のように端末ごとに用途が違う環境では、必要なものだけを同期したほうが安定します。
Files On-Demand(ファイル オンデマンド)とは
エクスプローラー上ではファイル一覧が見える一方、実体(内容)は必要になった時点でダウンロードされます。結果として、
- 端末のストレージ消費を抑えられる
- 初回同期の負荷が減り、トラブル時の復旧が速い
- 「とりあえず全員が全部持つ」状態を回避できる
といったメリットがあります。逆に、常にオフラインで必要な部署・端末があるなら「このフォルダーは常にこのデバイス上に保持する」を使い分けます。
選択同期(同期するフォルダーを絞る)で影響範囲を限定
同期に失敗しやすいのは、たいてい「古い資産」や「階層が深いアーカイブ」側です。優先度が低い領域を同期対象から外し、Webアクセス中心に切り替えるだけでも、現場の混乱を抑えられます。
Web版 OneDrive/SharePoint を暫定回避として使う
ローカル同期で弾かれる場合でも、Web版からは閲覧・ダウンロードできることがあります(逆に、Webでも弾かれるならサーバー側の制限に触れている可能性が高いです)。
- 緊急時:必要ファイルだけWebからダウンロードして作業
- 長期運用:深い階層のアーカイブはWeb閲覧中心にする
暫定回避は“いま業務を止めない”ために重要ですが、根本原因が残るため、次の「フォルダー設計の見直し」とセットで進めるのが現実的です。
根本対応:SharePoint/OneDrive 側で「階層」と「名前」を短くする
フルパスは末端(ファイル名)よりも、上位(フォルダー名・階層・サイト/ライブラリ名)の影響が大きいことが多いです。つまり、末端をちまちま直すより、上位を1つ短くするほうが全体に効く場面があります。
効きやすい見直しポイント
- 上位フォルダー名の短縮:部署名・委員会名・プロジェクト名を略称化(例:放射線科→RAD、臨床検査科→LAB)
- 階層を浅くする:分類のために階層を増やすのではなく、メタデータや検索を活用する
- ドキュメント ライブラリを分割:巨大で深い1本の木を、用途別に複数ライブラリへ分割する
- サイト名/チーム名の最適化:長いサイト名がパスに含まれる設計だと、最上流で損をする
「フォルダーで分類」から「メタデータで探す」へ寄せる
SharePoint の強みは検索性です。フォルダー階層で運用していると、どうしても「年度→部署→業務→患者種別→…」のように深くなりがちです。フォルダーを浅くして、タグ(列)で絞り込む設計に寄せると、パス問題だけでなく将来の運用負荷も下がります。
| やりがちな設計 | 起きやすい問題 | おすすめの代替 |
|---|---|---|
| 年度→部署→業務→細分類→さらに細分類… | パス長超過、属人化、探しにくい | 上位は浅く固定+「年度」「部署」「種別」を列で管理 |
| ファイル名に説明文を全部入れる | ファイル名が長くなり超過しやすい | 重要項目だけ命名規則に残し、説明はプロパティへ |
大量ファイルを“手作業でリネームしない”ための現実的アプローチ
80%が開けないレベルだと、現場は混乱しやすく、IT部門も疲弊します。現実的には、次のように「段階的に救う」設計が成功しやすいです。
フェーズ分け(例)
- 救急対応(当日〜数日):同期ルート短縮+Files On-Demand+Web暫定回避で業務停止を回避
- 原因の集中砲火(1〜2週間):長い上位フォルダー名の短縮、サイト/ライブラリ名の短縮、階層整理の方針決定
- 恒久対応(継続):命名規則・保管ルール・アーカイブ運用を整備し、今後「長いものを作らない」
「一括で直す」より「上位の数十箇所を直す」
経験上、最も効果が出るのは、“長いパスを作っている上位フォルダー”を特定して短縮することです。末端ファイルが何万件あっても、上位フォルダーが数十〜数百なら、作業量が現実的になります。
PowerShell で長いパスを抽出して優先度を付ける(例)
移行前のファイルサーバー、または同期済みのローカル領域で、長いものから順に洗い出す例です。運用に合わせて閾値(しきい値)を調整してください。
# 例:指定フォルダー配下のファイルを、フルパス長でソートしてCSV出力
$root = "D:\Data"
$limit = 240 # 目安:260付近で危険になるため、余裕を持って早めに検出
Get-ChildItem -LiteralPath $root -Recurse -File -ErrorAction SilentlyContinue |
Select-Object FullName, @{Name="PathLength";Expression={$_.FullName.Length}}, Length, LastWriteTime |
Where-Object { $_.PathLength -ge $limit } |
Sort-Object PathLength -Descending |
Export-Csv -NoTypeInformation -Encoding UTF8 ".\longpaths.csv"
出力したCSVを見ながら、
- 上位フォルダー名が長いのか
- 階層が深すぎるのか
- ファイル名が異常に長いのか
を分解していくと、対策が決めやすくなります。
よくある落とし穴(現場でハマりやすいポイント)
- 「Windowsの長いパス」を有効化したのに直らない:OneDrive同期クライアントやSharePoint側の制限が残っていることが多い
- 同期はできたのに Office で開けない/保存できない:アプリが長いパス対応でない、またはアドインが原因のことがある
- “ショートカットをOneDriveに追加”で余計に深くなる:見た目は便利でも、構造次第でパスを延ばす場合がある
- フォルダー名に記号や予約語が混じっている:移行元で許されていた名前でも、クラウド側で弾かれる
- 同じ名前の重複:大文字小文字や末尾のスペースなど、Windowsとクラウドで扱いが違う要素が衝突する
再発防止:命名規則とフォルダー設計の“最低ライン”を決める
一度直しても、運用ルールがないとまた増えます。現場が守れるレベルのルールに落とし込み、教育資料(1枚)にして配布できると強いです。
| 項目 | おすすめの考え方 | 理由 |
|---|---|---|
| 階層の深さ | 「深くても5〜7階層まで」を目安に上限を決める | 階層は増えるほどパスが伸び、検索性も落ちる |
| フォルダー名 | 略称を用意し、同じ語を繰り返さない(例:部署名を毎階層に入れない) | 上位が長いと配下が全滅しやすい |
| ファイル名 | “説明文”はプロパティへ。ファイル名は識別に必要な最小限+日付+版数などに絞る | 長文化しやすいポイントを分離できる |
| 運用 | 「長い名前を作らない」チェックを定期的に実施(棚卸しの自動化) | 小さな芽のうちに潰すほうが安い |
トラブルシューティング:症状別チェックリスト
| 症状 | まず確認すること | 打ち手 |
|---|---|---|
| OneDrive が同期を止めている/エラーが大量 | 同期できないアイテム一覧に「長すぎる」「名前に問題」などが出ていないか | 同期ルート短縮、選択同期、上位フォルダー短縮 |
| エクスプローラーで開けない | フルパス長、アプリが長いパス対応か | 長いパス有効化、ベースパス短縮、アプリ更新 |
| Webでもアップロード/移動できない | SharePoint/OneDrive の制限(禁止文字、URL長)に触れていないか | サイト/ライブラリ名短縮、構造見直し、移行前整理 |
| 一部だけ直って一部が残る | 原因が混在(長さ+禁止文字+重複)していないか | ログで分類→原因別に潰す(長さ/文字/重複) |
まとめ:現場を止めずに解決するための実行順
大量のファイルが対象でも、ポイントを外さなければ短期間で改善できます。おすすめの順序は次の通りです。
- Windows の長いパス対応を有効化して、OS側の足かせを外す
- OneDrive の同期ルートを短いパスに変更し、全体のパスを一括で圧縮する
- Files On-Demand と選択同期で「全部同期」をやめ、現場に必要な範囲から安定化する
- 上位フォルダー/サイト/ライブラリ名の短縮と階層整理で根本原因を潰す
- 命名規則と棚卸しの仕組みを作り、再発を防ぐ
この流れなら、手作業の全件リネームに頼らず、最小の変更で最大の回復を狙えます。

コメント