Windows Server 2008 R2のすべてのユーザーのごみ箱をクリアする


回答:


34

私が知る限り、これらはマイクロソフトがこれを行う「公式」な方法ではありません。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の時点で変更されていません。


それについて少し研究しましたが、少し詳しく説明したこのリンクがありました。social.technet.microsoft.com/Forums/en-US/winserverManagement/...
バートSilverstrim

テスト済みですが、これはすべてのユーザーにとってクリアではありません。本当に...私たちの請負業者に連絡し、彼はいくつかのファイルを削除するには、ログイン持たなければならないしたくない
カイルブラント

ええ、私もこの動作を確認できます。cleanmgrログインごとに実行するスクリプトは、MSの公式の方法に最も近いもののようです。別の方法は、各プロファイルのごみ箱フォルダーを吹き飛ばすことです。これは、必要がある各ユーザーの次回ログイン時にそれを再作成するが、私は本番でこれを試して少し疲れただろう。
MDMarra

CleanMgrの自動化の詳細はこちら... stackoverflow.com/a/35214197/80161
ネイサンハートリー

9

ユーザーのごみ箱はプロファイルで個別に保持されるため、適切な方法で文書化されるとは思わない。また、ごみ箱内のドキュメントまたはアイテムがユーザーによって閲覧されると、特定のドキュメントが漏えいする可能性があるため、これはセキュリティ上の危険ともなります。

管理者特権のスクリプトをスクリプト化して、各ローカルプロファイルのゴミ箱からファイルを実行および消去することもできます(ただし、移動プロファイルがある場合は、プロファイルを保持しているサーバーに同期されます)。ただし、権限と所有権を適切に設定する必要があります。サーバーでは、管理者がストレージサーバー上のプロファイルに適切にアクセスできないことがわかっています。管理者はプロファイルの所有権を取得する必要があり、完了したら所有権を適切なユーザーに戻すか、プロファイルが適切に機能しなくなります。

ユーザーごとにごみ箱ディレクトリをクリアするプロセスをログオフで実行することもできますが、後で回復したいものを誤って削除する必要があり、最後のログオフで削除されてから消えてしまいます。

おそらくそれを行う「適切な」方法は、ワークステーションとサーバーにクォータを構成し、そのクォータがストレージに達したときに、ユーザーがごみ箱からアイテムを削除する必要があることを学習することです。セキュリティのため、トレーニングの問題になります。それ以外の場合は、回避策が必要です。

@markmには、これを行うように見えるユーティリティの提案がありました。アドオンであり、既定でWindowsに組み込まれていないため、「適切な」方法ではないという主張に賛成です(ただし、便利な管理ユーティリティが含まれていないことは驚きではありません)。 dを使用する際に心配するのは、ワークステーションとサーバーで実行する必要があるか、どこに表示されるかのプロファイル同期の問題があるかもしれないことです。Windowsの「ディスククリーンアップ」タブにアクセスするための単なるミニツールであるように見えます。

別の考えは...テストされていません...フォルダのリダイレクトを使用してゴミ箱フォルダを中央サーバーにリダイレクトすることです。ただし、これを記念碑的に悪いアイデア(tm)として分類します。次に、その共有ディレクトリからファイルを削除します。ネットワークやセキュリティ設定などでこれをリンクすると、これはレベル1の優先順位の手がかりになり、他のシステム管理者が自発的に燃焼する前に逃げてしまいます。


昇格したユーザーとして実行されるディスククリーンアップは、全員のごみ箱にヒットしませんか?
MDマーラ

たとえそれがPITAを片付けていたとしても、私はちょっと願っています。意地悪の可能性があるターミナルサーバーなどの共有環境。
ロブモアー

うーん、面白い。これをテストする必要があるようです。
MDマーラ

@MarkMの答えが最も標準的に妥当だと思われたときに削除しましたが、KyleBrandtがテストした後、すべてのユーザーに対して機能しないようです。セキュリティのために適切に行うための文書化された方法はないと考えています、おそらく...ゴミが彼らの(ローミング)プロファイルの一部であるため、他のユーザーのものを削除する機能はセキュリティリスクになる可能性があります。
バートシルバーストリム

つまり私の答えを削除しました。
バートシルバーストリム

6

TreeSize Freeを実行し、ごみ箱に15ギガがあることを確認しましたが、恐らくそれが長く去ったユーザーによって行われたために、それを見ることができませんでした。しかし、TreeSize Proでそれを削除することで、データを確認できるごみ箱に入れました。


7
WinDirStatはそれを無料でできたはずです。ハードドライブ上のすべてのスペースを使用しているものを把握する必要があるとき、それはツールになります。ファイルまたはフォルダーを右クリックしてごみ箱に削除するか、永久に削除するか、右クリックしてエクスプローラーウィンドウまたはコマンドプロンプトを開くことができます。また、すべてのユーザーのごみ箱を表示することに何の問題もありませんが、SIDを検索して、各ユーザーに自分で一致させる必要があります。
JamesH 14

3

これは私のために働く:-

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 }

お役に立てれば


1

4GBを超えるデータを表示するごみ箱がありましたが、クリアできませんでした。サーバーで使用されなくなったプロファイルの束を見つけて、システムプロパティ-詳細-ユーザープロファイルで削除しました。ごみ箱は空です。

明らかに、現在のアカウントまたは使用中のアカウントは削除しないでください。ただし、管理者としてこの方法で削除できます。


0

私はこのソリューションが好きで、それが何をしているのか理解しやすく、仕事をしているのですが、コマンドを実行する任意の場所から作業するには、次のように変更を実行する必要があります(「drive_letter: ")そしてそれらのフォルダーを他のユーザーから削除できるようにするには、remove-itemコマンドの最後に" -force "を追加する必要があります。さらに、C:\ $ Recycle.bin \内のすべてのフォルダーを削除するため、子アイテムを取得するときに「-recurse」を含める必要はありません。したがって、これは私が代わりに使用する最後のコマンドになります:

Get-ChildItem "C:` $ Recycle.bin \ "-Force | Remove-Item -Recurse -force -WhatIf

削除-WhatIfコマンドをテストするだけではありません


0

以下のプロセスを使用して、すべてのファイルを削除します。

  1. 管理者ユーザーとしてログインし、Cドライブを探索します
  2. 保護されていないオペレーティングシステムファイルをフォルダーオプションから非表示にする
  3. $ Recycle.Binフォルダーを参照します
  4. すべてのファイルとフォルダーを削除する
  5. ごみ箱を空にします

すべてのファイルがディスクから削除されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.