ごみ箱に大量のファイルが溜まり、どれがどこから来たのか分からずに困っていませんか。一つ一つのファイルのプロパティを開いて元の場所を確認するのは、膨大な時間がかかります。
この記事では、Windowsのごみ箱にあるファイルの元の場所を、PowerShellスクリプトを使って一括で特定し、リストとして出力する手順を解説します。
この手順を実践することで、大量のファイルを効率的に整理し、必要なファイルを正確に復元できるようになります。
【要点】ごみ箱ファイルの元の場所を一括特定・リスト出力する方法
- PowerShellスクリプトの作成: ごみ箱内のファイル情報から元のパスを抽出するスクリプトを作成します。
- スクリプトの実行: 作成したスクリプトをPowerShellで実行し、元の場所情報を取得します。
- CSVファイルへの出力: 抽出した元の場所のリストをCSV形式で出力し、後から確認や分析に利用できるようにします。
ADVERTISEMENT
目次
ごみ箱のファイル情報と元の場所の特定方法
Windowsのごみ箱は、削除されたファイルだけでなく、そのファイルが元々どこに保存されていたかの情報も保持しています。この情報は、ごみ箱内の隠しフォルダに特殊な形式で格納されています。
具体的には、ごみ箱内の各ファイルには「$R」で始まるファイル名と「$I」で始まるファイル名がペアで存在します。「$I」ファイルには、対応する「$R」ファイル、つまり削除されたファイル本体の元のパスと削除日時が記録されています。
この仕組みを利用することで、手動でプロパティを確認する手間を省き、PowerShellスクリプトを使って一括で元の場所の情報を抽出できます。この機能は、特に大量のファイルを整理する際に非常に役立ちます。
PowerShellスクリプトで情報を抽出する前提条件
PowerShellスクリプトを安全に実行するには、事前にいくつか確認すべき点があります。
まず、PowerShellの実行ポリシーがスクリプトの実行を許可しているかを確認してください。通常は「Restricted」に設定されており、スクリプトの実行が制限されています。
一時的に「RemoteSigned」に変更することで、ローカルで作成したスクリプトを実行できるようになります。この変更は、スクリプト実行後に元に戻すことを推奨します。
ごみ箱ファイルの元の場所をリスト出力する手順
ここでは、PowerShellスクリプトを使用して、ごみ箱内のファイルの元の場所を特定し、CSVファイルとして出力する具体的な手順を説明します。
- PowerShellスクリプトの作成
以下のPowerShellスクリプトをメモ帳などのテキストエディタに貼り付け、「Get-RecycleBinOriginalPath.ps1」などの名前で保存します。ファイルの種類は「すべてのファイル」を選択し、文字コードは「UTF-8」で保存してください。$RecycleBinPath = "$env:SystemDrive\$Recycle.Bin" $Output = @() Get-ChildItem -Path $RecycleBinPath -Recurse -Filter "$I*" | ForEach-Object { $I_File = $_.FullName $R_File = $I_File -replace '\$I', '\$R' # $Iファイルの読み込み try { $Bytes = [System.IO.File]::ReadAllBytes($I_File) $OriginalPathLength = [System.BitConverter]::ToUInt16($Bytes, 24) * 2 $OriginalPath = [System.Text.Encoding]::Unicode.GetString($Bytes, 28, $OriginalPathLength) $DeletionTime = [DateTime]::FromFileTimeUtc([System.BitConverter]::ToInt64($Bytes, 8)) $Output += [PSCustomObject]@{ FileName = Split-Path -Leaf $OriginalPath OriginalPath = $OriginalPath DeletionTime = $DeletionTime RecycleBinPath = $R_File } } catch { Write-Warning "$I_File の読み込み中にエラーが発生しました: $($_.Exception.Message)" } } $Output | Export-Csv -Path "$env:USERPROFILE\Desktop\RecycleBinOriginalPaths.csv" -NoTypeInformation -Encoding UTF8 Write-Host "元の場所のリストがデスクトップに RecycleBinOriginalPaths.csv として出力されました。"このスクリプトは、ごみ箱内の「$I」ファイルから元のパスと削除日時を抽出し、CSV形式でデスクトップに出力します。
- PowerShellの実行ポリシーを確認・変更する
タスクバーの検索ボックスに「PowerShell」と入力し、「Windows PowerShell」を右クリックして「管理者として実行」を選択します。
PowerShellウィンドウが開いたら、現在の実行ポリシーを確認するため、以下のコマンドを入力してEnterキーを押します。Get-ExecutionPolicyもし「Restricted」と表示された場合は、スクリプトの実行を許可するため、以下のコマンドを入力してEnterキーを押します。確認メッセージが表示されたら「Y」を入力してEnterキーを押してください。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUserスクリプト実行後は、セキュリティのため実行ポリシーを元に戻すことを推奨します。元に戻すには、
Set-ExecutionPolicy Restricted -Scope CurrentUserと入力します。 - PowerShellスクリプトを実行する
管理者として実行したPowerShellウィンドウで、作成したスクリプトファイルのパスを指定して実行します。スクリプトをデスクトップに保存した場合の例を以下に示します。& "$env:USERPROFILE\Desktop\Get-RecycleBinOriginalPath.ps1"コマンドを入力したらEnterキーを押してください。スクリプトが実行され、ごみ箱内のファイル情報が収集されます。処理が完了すると、「元の場所のリストがデスクトップに RecycleBinOriginalPaths.csv として出力されました。」というメッセージが表示されます。
- 出力されたCSVファイルを確認する
スクリプトの実行が完了したら、デスクトップに「RecycleBinOriginalPaths.csv」というファイルが作成されています。このファイルをダブルクリックして開くと、Excelなどのスプレッドシートアプリケーションで内容を確認できます。
ファイル名、元のパス、削除日時、ごみ箱内のパスが一覧表示され、大量のファイルでも一目で元の場所を把握できます。
操作時の注意点と発生しやすい問題への対処法
PowerShellスクリプトを使った作業では、いくつかの注意点があります。ここでは、特に発生しやすい問題とその対処法について解説します。
PowerShellスクリプトが実行できない場合
スクリプトを実行しようとした際に、「このシステムではスクリプトの実行が無効になっているため」といったエラーメッセージが表示されることがあります。
原因: PowerShellの実行ポリシーが「Restricted」などの制限された設定になっているためです。
対処法: 「PowerShellの実行ポリシーを確認・変更する」の手順に従い、実行ポリシーを「RemoteSigned」に変更してください。スクリプト実行後は、セキュリティのためポリシーを元に戻すことを忘れないでください。
元の場所が特定できないファイルがある場合
出力されたCSVファイルに、一部のファイルで「OriginalPath」が空白になっている、またはエラーが表示されることがあります。
原因: ごみ箱内のファイル情報が破損している、または特殊な条件下で削除されたファイルである可能性があります。また、スクリプトがアクセスできない隠しファイルやシステムファイルの場合もあります。
対処法: スクリプト内でエラーメッセージが出力されている場合は、その内容を確認してください。ほとんどのファイルで問題が発生する場合は、ごみ箱自体に何らかの不整合が起きている可能性もあります。その場合は、Windowsのシステムファイルチェッカーを実行するなどの対応も検討できます。
出力されるCSVファイルが見つからない場合
スクリプトの実行が完了したにもかかわらず、デスクトップに「RecycleBinOriginalPaths.csv」が見つからないことがあります。
原因: スクリプトの実行に失敗しているか、出力先パスが誤っている可能性があります。または、セキュリティソフトウェアがファイルの作成をブロックしている可能性も考えられます。
対処法: PowerShellウィンドウにエラーメッセージが表示されていないか確認してください。スクリプト内のExport-Csv -Pathの部分を確認し、出力先パスが正しいか、書き込み権限がある場所かを確認します。一時的にセキュリティソフトウェアを無効にして再試行することも検討できますが、その際は十分な注意が必要です。
ADVERTISEMENT
ごみ箱ファイルの元の場所を確認する2つの方法の比較
ごみ箱に送られたファイルの元の場所を確認する方法はいくつかあります。ここでは、手動でプロパティを確認する方法と、PowerShellスクリプトで一括出力する方法を比較します。
| 項目 | 手動でプロパティを確認する方法 | PowerShellスクリプトで一括出力する方法 |
|---|---|---|
| 対象ファイル数 | 少数のファイル | 大量のファイル |
| 作業効率 | 低い(1ファイルずつ確認が必要) | 高い(一度にすべての情報を取得) |
| 必要なスキル | Windowsの基本的な操作 | PowerShellの基本的な知識 |
| 出力形式 | なし(目視確認のみ) | CSVファイルに出力 |
| データの再利用性 | 低い | 高い(CSVファイルを編集・分析可能) |
まとめ
この記事で解説したPowerShellスクリプトを使用することで、Windowsのごみ箱に送られた大量のファイルの元の場所を効率的に特定し、リストとして出力できるようになります。
手作業での確認に比べて大幅な時間短縮が可能となり、ごみ箱の整理や必要なファイルの復元作業がスムーズに進みます。
この方法を応用すれば、他のシステム管理作業においてもPowerShellスクリプトを活用できる場面があるでしょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Windows・PCの人気記事ランキング
- 【Edge】起動時や新しいタブを「Google」にする設定!ニュースを消してシンプルにする方法
- 【直し方】F7でカタカナにならない!ファンクションキーが効かず音量などが変わる時のFnロック解除法
- 【Windows】サブモニターが映らない!HDMIを挿しても「信号なし」になる時の認識・設定手順
- 【Windows】パスワードなしで起動!PIN入力を省略して自動ログイン(サインイン)させる設定手順
- 【Windows】画面がチカチカ・点滅する!グラフィックドライバの更新と設定の見直し
- 【Windows】デスクトップのアイコンが「白い紙」になった!アイコンキャッシュを削除して元に戻すコマンド
- 【Windows】デスクトップアイコンの「緑のチェック」は何?OneDriveの同期マークを非表示にする方法
- 【PC周辺】2台のモニターで壁紙を「別々」にする方法!Windows11での配置と調整
- Windows 11を極限まで軽量化する「不要な標準サービス」停止リスト|PCの動作を爆速化する設定手順とリスク管理の全貌
- 【Windows】イヤホンを挿してもスピーカーから音が出る!ジャックを認識しない時のRealtek設定と直し方
