日程Fit|「いつ空いてますか?」の往復はもう不要。候補日を選んでURLを送るだけ|登録不要|今すぐ無料で使う →

Windows11でHDD交換後にNASのファイル履歴から復元できない時の対処法とPowerShellによる手動復元手順

Windows 11 ノートPCで内蔵HDD/SSDを交換したあと、「ファイル履歴」がNAS上に残っているのに復元できない……という相談はとても多いです。本記事では、ファイル履歴の仕組みをかみ砕いて解説しつつ、「別のバックアップから復元」を使う方法と、手動コピー+PowerShellでタイムスタンプや重複ファイルを一気に整理する現実的な手順を詳しくまとめます。

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

トラブルの概要:HDD交換後にNASのファイル履歴から復元できない

まずは、よくある状況を整理します。

  • Windows 11 ノートPCの内蔵ドライブが故障し、新しいHDD/SSDに交換した
  • 交換前に「ファイル履歴」をNASに保存していた(例:\\NAS\Share\FileHistory\...
  • 新しいドライブにWindows 11を再インストールし、同じNASを指定したが…
  • 「ドキュメント」などを復元しようとしても「過去のバージョンはありません」と表示される
  • [ファイル履歴を有効にする]を押すと、2025年6月のバックアップは見えるが、有効化しようとするとエラーで失敗する
  • 旧ドライブはC:とD:などパーティション分割していた
  • NAS上には、ファイル名の末尾に (2025_04_07 17_09_55 UTC) のようなタイムスタンプ付きファイルが大量にある

この状態だと、

  • 「ファイル履歴の復元UIからは何も出てこない」
  • 「NASにはファイルがあるのに、どう復元すればいいのか分からない」

という二重のストレスを感じがちです。

項目状態
OSWindows 11(ノートPC)
バックアップ先NAS上の共有フォルダー(FileHistory)
復元方法ファイル履歴からの通常復元ができない
症状「過去のバージョンなし」「有効化エラー」
ファイル名末尾にUTCタイムスタンプ付きの重複が多い

なぜNAS上のファイル履歴から復元できなくなるのか

ファイル履歴は「PC名+ボリュームID」でバックアップを識別している

ファイル履歴は非常にシンプルなUIですが、内部では次のような情報でバックアップセットを識別しています。

  • PC名(コンピューター名)
  • ユーザー名
  • バックアップ対象ドライブのボリュームID(GUID)

内蔵ドライブを交換すると、このボリュームID(GUID)が完全に別物になります。たとえドライブレターがC:のままでも、ファイル履歴から見ると「前と違うディスク」と認識されます。

その結果、

  • 以前のバックアップ(旧ドライブのGUIDに紐づいた履歴)
  • 新しいドライブでこれから作成するバックアップ

が別物として扱われてしまい、

  • 「既存のバックアップを引き継いで続きからバックアップしたい」
  • 「同じPCとして扱ってほしい」

という意図がうまく通じず、復元画面にファイルが出てこなかったり、有効化時にエラーが発生したりします。

「ファイル履歴を有効化できない」=「復元できない」ではない

ここが重要なポイントです。

ファイル履歴は「オンになっていなくても」復元だけは実行できます。

具体的には、コントロール パネルの[ファイル履歴]にある

  • [個人用ファイルの復元]
  • [別のバックアップから復元]

から、NAS上の既存バックアップセットを「復元元」として指定する仕組みです。

つまり、

  • バックアップを「継続して取りたい」→ 有効化(オン)が必要
  • 過去のバックアップから「データだけ取り戻したい」→ 有効化できなくてもOK

という使い分けになります。「有効化に失敗しても、実は復元は可能」というのが本記事のキモです。

タイムスタンプ付き重複ファイルが増える理由

NAS内のファイル名が、

  • レポート.docx
  • レポート (2025_04_07 17_09_55 UTC).docx

のように増殖しているのは、

  • ファイル履歴の世代管理
  • 手動コピーや他のバックアップソフトとの競合

などが原因です。内容がほぼ同じファイルが大量にあると、新しいPCへの移行時にどれを残せばよいか分からなくなります。

そこで本記事では、これらのタイムスタンプ付きファイルをまとめてリネームし、さらに内容の重複をハッシュで判断して整理するPowerShellスクリプトも紹介します。

解決策1:ファイル履歴の「別のバックアップから復元」を使う

まずは、ファイル履歴の標準機能だけで復元を試みる方法です。ポイントは「ファイル履歴をオンにすること」ではなく、正しいバックアップセットを復元元として選び直すことです。

事前に確認しておきたい情報

  • NAS上のバックアップパス(例)
    \\NAS\Share\FileHistory\<ユーザー名>\<旧PC名>\Data\...
  • 旧PCのコンピューター名(バックアップフォルダー名と一致しているか)
  • NASにアクセスできるユーザー名/パスワード

特に、NAS側のフォルダー構造は一度エクスプローラーで確認しておきましょう。
FileHistory > ユーザー名 > 旧PC名 > Data > C > Users > … と辿れるはずです。

ファイル履歴から別のバックアップを選んで復元する手順

  1. Windowsでコントロール パネルを開く(スタートメニュー検索で「コントロール」と入力)。
  2. システムとセキュリティ] → [ファイル履歴]を開く。
  3. 左側のメニューから[個人用ファイルの復元]をクリック。
  4. 表示されたウィンドウ右上、または上部のツールバーにある[別のバックアップから復元]を選択。
  5. NAS上のファイル履歴共有(例:\\NAS\Share\FileHistory)がリストに表示されるので選択。
    初回アクセス時には、NASのユーザー名/パスワードを求められることがあります。
  6. バックアップの一覧から、目的の時点(例:2025年6月)を選択。
  7. 復元したいフォルダー(ドキュメントやピクチャなど)を選び、ウィンドウ下部の緑色の復元ボタンをクリック。
  8. 元の場所に復元]または[別の場所に復元]を選択して実行。

特に初期段階では、必ず「別の場所」に復元して中身を確認するのがおすすめです。たとえば、

  • D:\Restore_From_FileHistory

のような一時フォルダーを作り、そこへ復元してから本番のユーザープロファイルに移したほうが安全です。

うまくバックアップが表示されないときのコツ

  • 一度[ドライブの選択]でNAS共有(FileHistoryフォルダー)を指定してから、再度[個人用ファイルの復元]を開く
  • 別のユーザー名や旧PC名のフォルダーにバックアップがないか確認する
  • NASの権限で「読み取り」以上が付与されているかチェックする
症状確認ポイント
バックアップ一覧が空NASパスが正しいか、共有のルートではなく FileHistory フォルダーを選んでいるか
旧PCの名前が出てこないフォルダー名と旧PC名が一致しているか(大文字小文字も確認)
アクセス拒否エラーNASのアカウント権限(読み取り)があるか、Windows資格情報に正しく登録されているか

この方法で復元できれば、それが最も手軽です。ただし、

  • ファイル履歴のUIが途中で固まる
  • 有効化エラーと同時に復元画面も不安定

といったケースでは、次の解決策2:手動コピー+PowerShellで整理のほうが現実的で確実です。

解決策2:ファイル履歴を使わず手動コピー+PowerShellで整理する

「ファイル履歴の画面がどうしても不安定」「ついでにタイムスタンプや重複も一気に整理したい」といった場合は、NASからの手動コピーとPowerShellを組み合わせるのが安全かつ柔軟な方法です。

全体の流れは次のとおりです。

  1. NASのバックアップを、ローカルの作業用フォルダーへ丸ごとコピー
  2. ファイル名末尾の UTC タイムスタンプをPowerShellで一括削除
  3. 内容が同じ重複ファイルをハッシュで判定し、自動で退避
  4. 整理したデータを、新しいユーザープロファイルの各フォルダーへコピー(または移動)

A. 作業用フォルダーを作り、NASから丸ごとコピーする

まずは、元データを絶対に壊さないように、NASからローカルにコピーします。
ここでは、例として D:\Restore_Staging を作業用フォルダーとします。

  1. エクスプローラーで D:\Restore_Staging を作成。
  2. [スタート]を右クリック → [Windows ターミナル(管理者)]または[PowerShell(管理者)]を起動。
  3. NASのバックアップフォルダーから、作業用フォルダーへ robocopy でコピー。
robocopy "\\NAS\Share\FileHistory\&lt;ユーザー名&gt;\&lt;旧PC名&gt;\Data" "D:\Restore_Staging" ^
  /E /COPY:DAT /DCOPY:DAT /R:0 /W:0 /MT:16 /XJ
オプション意味
/E空フォルダーを含めてサブフォルダーまで全コピー
/COPY:DATデータ、属性、タイムスタンプを維持してコピー
/DCOPY:DATフォルダーにも日時・属性をコピー
/R:0 /W:0エラー時に再試行しない(NASで権限エラーが出ても止まらない)
/MT:1616スレッドで並列コピー(環境に応じて調整)
/XJジャンクションを無視(ループ防止)

ポイントは、NAS上のバックアップファイルには一切手を加えないことです。必ずローカル側で作業しましょう。

B. ファイル名末尾のタイムスタンプを一括リネームする

次に、末尾に付いている UTC タイムスタンプを一括で削除します。対象とするパターンは、

(YYYY_MM_DD hh_mm_ss UTC)(拡張子の直前)

の形式です。まずはドライラン(テスト実行)で挙動を確認します。

$root = 'D:\Restore_Staging'
$pattern = ' \(\d{4}_\d{2}_\d{2}\s\d{2}_\d{2}_\d{2}\sUTC\)(?=\.[^.]+$)'

Get-ChildItem -Path $root -Recurse -File |
  Where-Object { $_.Name -match $pattern } |
  ForEach-Object {
    $newName = ($_.Name -replace $pattern, '')
    Rename-Item -LiteralPath $_.FullName -NewName $newName -WhatIf
}

上記のスクリプトでは、-WhatIf を付けているため、実際には名称変更されず、「こうリネームします」というログだけが表示されます。問題がないことを確認したら、-WhatIf を削除して本実行します。

$root = 'D:\Restore_Staging'
$pattern = ' \(\d{4}_\d{2}_\d{2}\s\d{2}_\d{2}_\d{2}\sUTC\)(?=\.[^.]+$)'

Get-ChildItem -Path $root -Recurse -File |
  Where-Object { $_.Name -match $pattern } |
  ForEach-Object {
    $newName = ($_.Name -replace $pattern, '')
    Rename-Item -LiteralPath $_.FullName -NewName $newName
}
要素意味
\d{4}_\d{2}_\d{2}YYYY_MM_DD の日付(例:2025_04_07)
\d{2}_\d{2}_\d{2}hh_mm_ss の時刻(例:17_09_55)
(?=\.[^.]+$)拡張子の直前だけを対象にする先読み(.docx など)

この手順で、

  • レポート (2025_04_07 17_09_55 UTC).docxレポート.docx
  • 写真 (2025_01_01 00_00_00 UTC).jpg写真.jpg

といったリネームが一括で行われます。

C. 内容が同じ重複ファイルをハッシュで整理する

次は、ハッシュ値(SHA-256)でファイル内容の一致を判定し、まったく同じ中身の重複ファイルを整理します。ここでもまずはドライランで確認します。

$root = 'D:\Restore_Staging'
Get-ChildItem $root -Recurse -File |
  ForEach-Object {
    $_ | Add-Member -NotePropertyName Hash -NotePropertyValue (Get-FileHash -LiteralPath $_.FullName -Algorithm SHA256).Hash -PassThru
  } |
  Group-Object Hash | Where-Object { $_.Count -gt 1 } |
  ForEach-Object {
    # 更新日時で新しい1つを残す
    $keep = $_.Group | Sort-Object LastWriteTime -Descending | Select-Object -First 1
    $dups = $_.Group | Where-Object { $_.FullName -ne $keep.FullName }
    $dupDir = Join-Path $keep.DirectoryName '_重複'
    "KEEP:  $($keep.FullName)"
    foreach ($f in $dups) {
      "MOVE:  $($f.FullName) -&gt; $dupDir"
    }
}

結果を確認して問題なければ、実際に重複ファイルを _重複 フォルダーへ移動します。

$root = 'D:\Restore_Staging'
Get-ChildItem $root -Recurse -File |
  ForEach-Object {
    $_ | Add-Member -NotePropertyName Hash -NotePropertyValue (Get-FileHash -LiteralPath $_.FullName -Algorithm SHA256).Hash -PassThru
  } |
  Group-Object Hash | Where-Object { $_.Count -gt 1 } |
  ForEach-Object {
    $keep = $_.Group | Sort-Object LastWriteTime -Descending | Select-Object -First 1
    $dups = $_.Group | Where-Object { $_.FullName -ne $keep.FullName }
    $dupDir = Join-Path $keep.DirectoryName '_重複'
    New-Item -ItemType Directory -Path $dupDir -ErrorAction SilentlyContinue | Out-Null
    foreach ($f in $dups) {
      Move-Item -LiteralPath $f.FullName -Destination (Join-Path $dupDir $f.Name)
    }
}

このスクリプトの特徴は次のとおりです。

  • 内容が完全に同じファイルだけを重複とみなす(サイズ・日付ではなくハッシュで判定)
  • 更新日時が最も新しい1ファイルだけを残し、他は _重複 フォルダーに移動
  • 削除ではなく移動なので、問題があれば _重複 から戻せる

ファイル数が非常に多い場合、ハッシュ計算には時間がかかります。夜間などPCを触らない時間帯に実行するのがおすすめです。

D. 整理したデータをユーザープロファイルへ戻す

ここまで完了したら、ようやく新しいWindows 11環境のユーザープロファイルにデータを戻していきます。

  • D:\Restore_Staging\C\Users\<旧ユーザー名>\DocumentsC:\Users\<新ユーザー名>\Documents
  • D:\Restore_Staging\C\Users\<旧ユーザー名>\PicturesC:\Users\<新ユーザー名>\Pictures

など、フォルダーごとに対応する場所へコピーまたは移動します。大量データの転送には、再び robocopy を使うと高速かつ確実です。

robocopy "D:\Restore_Staging\C\Users\&lt;旧ユーザー名&gt;\Documents" "C:\Users\&lt;新ユーザー名&gt;\Documents" /E /COPY:DAT /DCOPY:DAT /R:0 /W:0 /MT:16

ポイント:

  • 上書きされると困るファイルは、事前に別フォルダーに退避しておく
  • OneDriveを併用している場合は、OneDriveフォルダーの扱いを事前に決めてからコピーする
  • アプリ固有の設定フォルダー(AppData配下など)は、安易に丸ごと上書きしない

E. ここまで完了したらNAS上のバックアップは「原本」として残しておく

作業がうまくいっても、NAS上の元バックアップはすぐには消さず、最低でもしばらくはそのまま保管しておきましょう。
何か取りこぼしが見つかった場合でも、元データが残っていればやり直しが利きます。

解決策3:どうしても「有効化」でエラーが出る場合の設定リセット

「復元は手動コピーで済ませたが、今後もファイル履歴を使いたい」「有効化エラーが何度やっても消えない」といった場合は、一度ファイル履歴の設定キャッシュをリセットすると改善することがあります。

ファイル履歴の設定をリセットする手順

  1. コントロール パネル → [ファイル履歴]を開く。
  2. 現状が「オン」になっていれば、いったん[オフにする]をクリック。
  3. [スタート]を右クリック → [コンピューターの管理] → [サービスとアプリケーション] → [サービス]を開く。
  4. サービス一覧から「File History Service」を探し、右クリック → [停止]。
  5. Win + R キー → %LOCALAPPDATA%\Microsoft\Windows と入力してエンター。
  6. FileHistory フォルダーを探し、FileHistory.old などにリネーム(削除はしない)。
  7. PCを再起動。
  8. 再度コントロール パネル → [ファイル履歴]を開き、[ドライブの選択]からNASの共有を指定。
  9. 必要に応じて、[個人用ファイルの復元] → [別のバックアップから復元]で旧バックアップを参照。

この操作で、ファイル履歴のローカル設定キャッシュが初期化され、新しいドライブ構成で「クリーンな」状態からファイル履歴を再構成できます。

なお、旧ドライブのパーティション構成(C:とD:に分かれていたかどうか)は、復元可否に直接は影響しません。重要なのは、PC名とボリュームIDです。

どの解決策を選ぶべきかの目安

目的・状況おすすめの解決策
できるだけ簡単に、UIから復元したい解決策1:ファイル履歴の「別のバックアップから復元」
タイムスタンプ付きファイルや重複を整理しながら復元したい解決策2:手動コピー+PowerShellで整理
ファイル履歴の有効化エラーを根本的に解消したい解決策3:ファイル履歴設定のリセット
とりあえずデータだけ救出できればよい解決策2(作業用フォルダーで安全に整理)

ファイル履歴フォルダー構造を理解しておくと復元が楽になる

NAS上のファイル履歴は、次のような階層構造になっています。

\\NAS\Share\FileHistory\
  └─ &lt;ユーザー名&gt;\
     └─ &lt;PC名&gt;\
        └─ Data\
           └─ C\
              └─ Users\
                 └─ &lt;ユーザー名&gt;\
                    ├─ Documents
                    ├─ Pictures
                    ├─ Desktop
                    └─ ...

この構造を知っていれば、ファイル履歴のUIがうまく動かなくても、

  • エクスプローラーで直接フォルダーを開いて必要なファイルだけコピー
  • robocopyやPowerShellで目的のフォルダー単位に抽出

といった柔軟な手段が取れます。

特に、旧PCと新PCでユーザー名やPC名が変わっていると、ファイル履歴のUIだけでは見つけづらくなるので、一度手動でパスをたどって実際のファイルを確認してみることをおすすめします。

よくあるつまずきポイントとチェックリスト

NAS側の権限・ネットワークの問題

  • NASの共有フォルダーに「読み取り」権限が付与されているか
  • PC名やユーザーを変更したことで、以前と違うアカウントでアクセスしていないか
  • VPN越しや不安定なWi-Fi経由で大容量復元をしていないか(途中で切断されやすい)

OneDriveなど他の同期サービスとの競合

  • OneDriveフォルダーをそのままファイル履歴対象にしていると、世代管理が二重になる
  • まずOneDriveの同期を止めてから復元し、その後で再同期するほうがトラブルが少ない

スクリプト実行時の注意点

  • 必ず最初は -WhatIf 付きでテストする
  • 小さなテスト用サブフォルダー(数十ファイル程度)で挙動を確認してから本番へ適用する
  • スクリプト実行前に、作業用フォルダーを丸ごと別ドライブにコピーしておくと安心

今後同じトラブルを避けるための予防策

今回の復元が終わったら、同じ苦労を繰り返さないために、次の点を見直しておきましょう。

ファイル履歴の初期設定を作り直す

  • 新しいHDD/SSDでWindows 11が安定して動作していることを確認したら、ファイル履歴を改めて有効化
  • 保存先(NAS)と保存期間(例:無制限ではなく1年など)を見直す
  • バックアップ対象フォルダーから、不要なフォルダー(Tempや巨大なキャッシュなど)を除外する

「重複増殖」の元を断つ

  • 同じフォルダーを、複数のバックアップ・同期アプリで同時に管理しない
  • ファイル履歴とクラウド同期(OneDrive・Google Driveなど)の役割を分ける
  • 「手動コピー+日時付きリネーム」を頻繁に行う運用を見直す

定期的なテスト復元を習慣にする

  • 月に1回程度、[個人用ファイルの復元]を開いて、目的の世代にアクセスできるか確認
  • 重要なフォルダー(ドキュメントなど)だけでも、別ドライブやクラウドへ手動バックアップを併用する
  • HDDの異音やS.M.A.R.T.エラーが出たら、早めにフルバックアップを取り直す

まとめ:ファイル履歴がダメでもデータはまだ救える

HDDやSSDを交換したあと、NAS上の「ファイル履歴」から復元できない状況に遭遇すると、「もうデータは戻らないのでは」と不安になります。しかし、

  • ファイル履歴の「有効化」ができなくても、「別のバックアップから復元」でデータだけ取り戻せる
  • それでも安定しない場合は、NASから手動コピー+PowerShellでタイムスタンプ削除・重複整理という現実的な手段がある
  • 最悪、エクスプローラーで FileHistory\ユーザー名\PC名\Data\... をたどって手動コピーすることも可能

というように、まだ打てる手はたくさんあります。

今回紹介した手順を使えば、

  • 「ファイル履歴をオンにできない=復元不能」

という思い込みから解放され、実用的かつきれいな形でデータを新しいWindows 11環境へ移行できます。時間は多少かかりますが、あわててNAS上のバックアップを消したりせず、作業用フォルダーをうまく活用しながら、落ち着いて復元を進めていきましょう。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次