Windows 10 では、ストレージ センサーは、ストレージが不足しているときに自動的にスペースを解放する機能です。この機能は、ジャンク システム ファイル、1 か月以上ごみ箱またはダウンロード フォルダーにあるファイルを削除し、しばらく使用した OneDrive コンテンツをオンラインのみにすることによって機能します。
この機能はストレージ スペースを制御するのに役立ちますが、制限があり、先月ほど変更されていないファイルを監視および削除するために別の場所を手動で追加するオプションはありません。重要でないファイルを別の場所に保存する場合は、PowerShell とタスク スケジューラを使用して、指定した日数より古いフォルダーからファイルを監視およびクリーンアップすることができます。
このガイドでは、 Windows 10で先月または指定した日数の間変更されていないファイルを自動的に削除する手順について説明します。(これらの手順はWindows 11でも機能するはずです。)
重要:間違ったコマンドを入力すると間違ったファイルが削除される可能性があるため、一時フォルダーを使用してコマンドをテストすることをお勧めします。
PowerShell を使用して Windows 10 で X 日より古いファイルを削除する
多数のファイルを含む別のフォルダーがあり、特定の日より古いフォルダーを削除してクリーンアップしたい場合は、次の手順を使用できます。
-
Windows 10 で[スタート]を開きます。
-
Windows PowerShellを検索し、結果を右クリックして、[管理者として実行] オプションを選択します。
-
次のコマンドを入力して、過去 30 日間変更されていないファイルを削除し、Enterを押します。
Get-ChildItem –Path "C:\path\to\folder" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | アイテムの削除
パスを変更します:"C:\path\to\folder"フォルダーの場所を使用して、ファイルを削除-30し、上記のコマンドで最終更新日のファイルを選択するように変更します。

タスク スケジューラを使用して Windows 10 で X 日より古いファイルを自動的に削除する
前の手順のコマンドを使用すると、30 日以上経過したフォルダー内のファイルを削除できますが、スペースを解放するたびに、PowerShell を開いてコマンドを手動で実行する必要があります。
メモ帳を使用して PowerShell スクリプトを作成する
タスク スケジューラを使用してタスクを実行するには、次の手順で PowerShell スクリプトを作成する必要があります。
-
スタート を開きます。
-
メモ帳を検索し、一番上の結果をクリックしてエクスペリエンスを開きます。
-
次のコマンドをメモ帳のテキスト ファイルにコピー アンド ペーストします。
Get-ChildItem –Path "C:\path\to\folder" -Recurse | Where-Object {($_.LastWriteTime -lt (Get-Date).AddDays(-30))} | アイテムの削除
このパス"C:\path\to\folder"を変更します。フォルダーの場所を使用して、ファイルを削除-30し、上記のコマンドで最終更新日を持つファイルを選択するように変更します。
-
[ファイル] メニューをクリックします。
-
[名前を付けて保存] オプションを選択します。
-
cleanup.ps1という名前と拡張子を使用してファイルを保存します。
タスク スケジューラを使用してタスクを作成する
プロセスを自動化したい場合は、タスク スケジューラを使用して、指定した間隔でコマンドを実行するタスクを作成する必要があります。
-
スタート を開きます。
-
タスク スケジューラを検索し 、結果をクリックします。
-
[タスク スケジューラ ライブラリ] フォルダーを右クリックします。
-
[ 新しいフォルダー] オプションをクリックします。
-
フォルダの任意の名前を入力し、[ OK ] をクリックします。(タスクを整理し、システム タスクから分離するために、新しいフォルダーを作成しています。)
-
最近作成したフォルダーを右クリックし、[タスクの作成] オプションを選択します。
-
「名前」ボックスに、タスクの名前を入力します。
-
[全般] タブの [セキュリティ オプション] セクションで、[セキュリティ オプション] セクションの [ユーザーがログオンしているかどうかに関係なく実行する] オプションを選択します。(このオプションにより、タスクが自動的に実行されるときにコマンド ウィンドウが表示されなくなります。)
![How to delete files older than X days automatically using PowerShell How to delete files older than X days automatically using PowerShell]()
-
[パスワードを保存しない] オプションをクリアし ます。
-
「トリガー」タブをクリックします。
-
[新規] ボタンをクリックします。
-
[タスクの開始] ドロップダウン メニューを使用して、[スケジュールに従って] を選択します。
-
[設定] で、タスクをいつ実行するかを指定します (たとえば、定刻、毎日、毎週、毎月)。どのオプションを選択する場合でも、必ず右側の[開始]設定を指定してください。
-
[ OK ] ボタンをクリックします。
![How to delete files older than X days automatically using PowerShell How to delete files older than X days automatically using PowerShell]()
-
[アクション] タブをクリックします。
-
[新規] ボタンをクリックします。
-
[アクション] ドロップダウン メニューを使用して、[プログラムの開始] オプションを選択します。
-
「プログラム/スクリプト」フィールドに、次のコマンドを入力します。
powershell.exe
-
「引数の追加」フィールドに次のコマンドを入力し、[ OK ] ボタンをクリックします。
-ExecutionPolicy バイパス C:\path\to\cleanup.ps1
パスを変更します。"C:\path\to\cleanup.ps1"以前に作成した PowerShell スクリプトの場所を使用して、コマンドでファイルを削除します。
![How to delete files older than X days automatically using PowerShell How to delete files older than X days automatically using PowerShell]()
-
[設定] タブをクリックします。
-
次のオプションを確認します。
- オンデマンドでタスクを実行できるようにします。
- スケジュールされた開始に失敗した後、できるだけ早くタスクを実行します。
- タスクが失敗した場合は、すべてを再起動します。
-
[ OK ] ボタンをクリックします。
-
管理者のユーザー名とパスワードを入力します (該当する場合)。
-
[ OK ] ボタンをクリックします。
手順を完了すると、PowerShell スクリプトがスケジュールに従って実行され、指定した日数よりも古いファイルが削除されます。名前を変更したり、フォルダーを別の場所に移動したりしないでください。そうしないと、タスクは失敗します。