回答:
私が知る限り、これらはマイクロソフトがこれを行う「公式」な方法ではありません。2つのオプションがあります。1つはc:\ $ Recycle.Binを削除すること、もう1つはcleanmgr.exeをスクリプト化して各ユーザーログオンで実行することです。
c:\ $ Recycle.binを削除するための「公式」サポートに最も近いものは、このMS KBからのもので、XPおよびVistaを参照しますが、予想される動作を暗示しています。
これをすぐに実行したい場合は、実行するだけでrd /s c:\$Recycle.Bin
、Windowsが次に必要になったときに必要なフォルダーを再作成する必要があるようです。私はこれをすぐにテストしましたが、動作するように見えますが、当然ながら注意して進めてください。
これは、ディスククリーンアップツール(cleanmgr.exe)を使用して実行できます。残念ながら、Microsoftはこれを「デスクトップエクスペリエンス」機能セットにバンドルすることを決定しました。つまり、他のがらくたをインストールして再起動する必要があります。
別の方法は、次の2つのファイルを取得して、Technetごとに指定された場所に移動することです。
C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.1.7600.16385_none_c9392808773cd7da\cleanmgr.exe
C:\Windows\winsxs\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.1.7600.16385_en-us_b9cb6194b257cc63\cleanmgr.exe.mui
Cleanmgr.exeは%systemroot%\ System32に配置する必要があります。
Cleanmgr.exe.muiは%systemroot%\ System32 \ en-USに配置する必要があります。
cleanmgrを単独で実行しても、全員のごみ箱をクリアすることはできませんが、/ sagesetおよび/ sagerunを使用して、GPOを介してすべてのユーザーに対して実行されるログオンスクリプトを作成できます。これは最もクリーンなものではありませんが、機能します。リンクされた記事はXP用ですが、構文はServer 2008 R2の時点で変更されていません。
cleanmgr
ログインごとに実行するスクリプトは、MSの公式の方法に最も近いもののようです。別の方法は、各プロファイルのごみ箱フォルダーを吹き飛ばすことです。これは、必要がある各ユーザーの次回ログイン時にそれを再作成するが、私は本番でこれを試して少し疲れただろう。
ユーザーのごみ箱はプロファイルで個別に保持されるため、適切な方法で文書化されるとは思わない。また、ごみ箱内のドキュメントまたはアイテムがユーザーによって閲覧されると、特定のドキュメントが漏えいする可能性があるため、これはセキュリティ上の危険ともなります。
管理者特権のスクリプトをスクリプト化して、各ローカルプロファイルのゴミ箱からファイルを実行および消去することもできます(ただし、移動プロファイルがある場合は、プロファイルを保持しているサーバーに同期されます)。ただし、権限と所有権を適切に設定する必要があります。サーバーでは、管理者がストレージサーバー上のプロファイルに適切にアクセスできないことがわかっています。管理者はプロファイルの所有権を取得する必要があり、完了したら所有権を適切なユーザーに戻すか、プロファイルが適切に機能しなくなります。
ユーザーごとにごみ箱ディレクトリをクリアするプロセスをログオフで実行することもできますが、後で回復したいものを誤って削除する必要があり、最後のログオフで削除されてから消えてしまいます。
おそらくそれを行う「適切な」方法は、ワークステーションとサーバーにクォータを構成し、そのクォータがストレージに達したときに、ユーザーがごみ箱からアイテムを削除する必要があることを学習することです。セキュリティのため、トレーニングの問題になります。それ以外の場合は、回避策が必要です。
@markmには、これを行うように見えるユーティリティの提案がありました。アドオンであり、既定でWindowsに組み込まれていないため、「適切な」方法ではないという主張に賛成です(ただし、便利な管理ユーティリティが含まれていないことは驚きではありません)。 dを使用する際に心配するのは、ワークステーションとサーバーで実行する必要があるか、どこに表示されるかのプロファイル同期の問題があるかもしれないことです。Windowsの「ディスククリーンアップ」タブにアクセスするための単なるミニツールであるように見えます。
別の考えは...テストされていません...フォルダのリダイレクトを使用してゴミ箱フォルダを中央サーバーにリダイレクトすることです。ただし、これを記念碑的に悪いアイデア(tm)として分類します。次に、その共有ディレクトリからファイルを削除します。ネットワークやセキュリティ設定などでこれをリンクすると、これはレベル1の優先順位の手がかりになり、他のシステム管理者が自発的に燃焼する前に逃げてしまいます。
TreeSize Freeを実行し、ごみ箱に15ギガがあることを確認しましたが、恐らくそれが長く去ったユーザーによって行われたために、それを見ることができませんでした。しかし、TreeSize Proでそれを削除することで、データを確認できるごみ箱に入れました。
これは私のために働く:-
Get-ChildItem "C:\`$Recycle.bin\" | Remove-Item -Recurse -Force
recycle.binが削除されます。Windowsは、必要に応じて、つまりユーザーが新しいファイルを削除するとすぐに、ごみ箱を再作成します。
最もエレガントなコードではないかもしれませんし、もっと良い方法があるかもしれませんが、混雑したサーバーのスペースを解放するのに役立ちます。Remove-Itemコマンドの-WhatIfスイッチを使用してテストできます。
Get-ChildItem "C:\`$Recycle.bin\" | Remove-Item -Recurse -Force -WhatIf
注意:各ドライブは独自のごみ箱を維持しています。そのため、ドライブ文字を、このコマンドを実行しているドライブに置き換えるか、すべてのローカルドライブに対して次を使用できます。
Get-PSProvider -PSProvider FileSystem `
| Select-Object -ExpandProperty Drives `
| Where-Object { $_.DisplayRoot -notlike "\\*" } `
| Select-Object -ExpandProperty Root `
| ForEach-Object { "$_`$Recycle.bin\" } `
| Where-Object { Test-Path -Path $_ -PathType Container } `
| ForEach-Object { Get-ChildItem -Path $_ -Force | Remove-Item -Recurse -Force }
お役に立てれば
私はこのソリューションが好きで、それが何をしているのか理解しやすく、仕事をしているのですが、コマンドを実行する任意の場所から作業するには、次のように変更を実行する必要があります(「drive_letter: ")そしてそれらのフォルダーを他のユーザーから削除できるようにするには、remove-itemコマンドの最後に" -force "を追加する必要があります。さらに、C:\ $ Recycle.bin \内のすべてのフォルダーを削除するため、子アイテムを取得するときに「-recurse」を含める必要はありません。したがって、これは私が代わりに使用する最後のコマンドになります:
Get-ChildItem "C:` $ Recycle.bin \ "-Force | Remove-Item -Recurse -force -WhatIf
削除-WhatIfコマンドをテストするだけではありません
以下のプロセスを使用して、すべてのファイルを削除します。
すべてのファイルがディスクから削除されます。