Bersihkan Keranjang Sampah Untuk Semua Pengguna di Windows Server 2008 R2

Jawaban:

34

Sejauh yang saya tahu, ini bukan cara "resmi" yang didukung Microsoft untuk melakukan ini. Ada dua opsi. Salah satunya melibatkan menghapus c: \ $ Recycle.Bin dan yang lainnya adalah scripting cleanmgr.exe untuk dijalankan pada setiap login pengguna.

Hal yang paling dekat dengan dukungan "resmi" untuk menghapus c: \ $ Recycle.bin adalah dari MS KB ini , yang mereferensikan XP dan Vista, tetapi menyiratkan perilaku yang diharapkan.


Penghapusan segera

Jika Anda ingin ini terjadi segera, tampaknya Anda bisa menjalankannya rd /s c:\$Recycle.Bindan Windows harus membuat ulang folder yang diperlukan saat nanti diperlukan. Saya baru saja menguji ini dengan cepat dan tampaknya berhasil, tetapi-jelas-jelas melanjutkan dengan hati-hati.


Penghapusan logon-scriptable berulang

Anda dapat melakukan ini dengan alat Disk Cleanup (cleanmgr.exe). Sayangnya, Microsoft memutuskan untuk menggabungkan ini dengan serangkaian fitur "Pengalaman Desktop", yang berarti Anda harus menginstal banyak omong kosong dan reboot.

Alternatifnya adalah mengambil dua file berikut dan memindahkannya ke lokasi yang ditentukan per 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 harus masuk dalam% systemroot% \ System32.

Cleanmgr.exe.mui harus masuk dalam% systemroot% \ System32 \ en-US.

Menjalankan cleanmgr saja tidak akan membuat Anda menghapus recycle bin semua orang, tetapi Anda dapat menggunakan / sageset dan / sagerun untuk membuat skrip logon yang berjalan untuk semua pengguna melalui GPO yang akan menghapus recycle bin mereka pada login berikutnya, seperti dijelaskan di sini . Itu bukan hal terbersih, tetapi itu akan berhasil. Artikel yang ditautkan adalah untuk XP, tetapi sintaksnya tidak berubah pada Server 2008 R2.

MDMarra
sumber
Melakukan sedikit riset tentang itu, ada tautan ini yang menguraikan sedikit. social.technet.microsoft.com/Forums/en-US/winserverManagement/…
Bart Silverstrim
Diuji, ini tidak menghapusnya untuk semua pengguna. Tidak benar-benar ingin harus menghubungi kontraktor kami dan minta dia masuk hanya untuk menghapus beberapa file ...
Kyle Brandt
Ya, saya bisa mengkonfirmasi perilaku ini juga. Tampaknya salah satu skrip cleanmgruntuk dijalankan pada setiap login adalah hal yang paling dekat dengan cara resmi MS untuk melakukannya. Alternatifnya adalah membuang folder tempat sampah pada setiap profil. Ini harus menciptakan itu pada login berikutnya untuk setiap pengguna, tapi aku akan sedikit lelah untuk mencoba ini di produksi.
MDMarra
Lebih lanjut tentang mengotomatisasi CleanMgr di sini ... stackoverflow.com/a/35214197/80161
Nathan Hartley
9

Saya tidak berpikir ada cara yang tepat didokumentasikan sebagai tempat sampah untuk pengguna disimpan terpisah di profil mereka; ini juga akan menjadi bahaya keamanan untuk memungkinkan karena dokumen atau barang di tempat sampah daur ulang, jika dibaca oleh pengguna, dapat memungkinkan dokumen tertentu bocor.

Mungkin saja skrip skrip khusus administrator untuk menjalankan dan menghapus file dari sampah setiap profil lokal (tapi itu mungkin masih disinkronkan ke server yang memegang profil Anda jika Anda memiliki profil roaming). Tetapi Anda harus memiliki izin dan kepemilikan yang ditetapkan dengan benar; Saya tahu di server kami Administrator tidak memiliki akses yang tepat ke profil di server penyimpanan; administrator harus memiliki kepemilikan atas profil, dan ketika kami selesai mengembalikan kepemilikan kepada pengguna yang tepat atau profil lain tidak lagi berfungsi dengan baik untuk mereka.

Anda dapat mencoba menjalankan proses pada saat logoff yang menghapus direktori trash per pengguna, tetapi itu juga berarti secara tidak sengaja menghapus sesuatu yang ingin mereka pulihkan nanti dan sekarang akan hilang karena dihapus pada saat logoff terakhir.

Mungkin cara yang "tepat" untuk melakukannya adalah mengonfigurasi kuota di workstation dan server dan ketika kuota tersebut dipukul untuk penyimpanan, pengguna mengetahui mereka harus menghapus item dari tempat sampah daur ulang. Karena keamanan itu akan menjadi masalah pelatihan. Kalau tidak, Anda akan membutuhkan solusi.

@markm memiliki saran utilitas yang tampaknya melakukan ini; Saya mendukung pernyataan bahwa ini bukan cara yang "tepat" karena ini merupakan add-on dan tidak dibangun ke dalam Windows secara default (walaupun saya tidak terkejut bahwa utilitas administrasi yang membantu tidak termasuk.) Satu-satunya masalah lain yang saya alami. D khawatir tentang menggunakannya adalah bahwa itu mungkin harus dijalankan pada workstation dan di server atau Anda mungkin memiliki masalah sinkronisasi profil dengan apa yang muncul di mana. Sepertinya itu seharusnya hanya alat mini untuk mengakses tab "disk cleanup" di Windows.

Pikiran lain ... belum teruji ... akan menggunakan pengalihan folder untuk mengarahkan folder sampah mereka ke server pusat. Saya akan mengklasifikasikan ini sebagai Ide Buruk (tm) secara monumental. Kemudian Anda akan menghapus file-file mereka dari direktori bersama itu. Menghubungkan ini melalui jaringan, pengaturan keamanan, dll. Akan membuat ini menjadi prioritas tingkat satu yang akan membuat sysadmin lain lari sebelum terbakar secara spontan.

Bart Silverstrim
sumber
Disk cleanup dijalankan sebagai pengguna yang ditinggikan tidak menekan tempat sampah semua orang?
MDMarra
Saya agak berharap bahkan jika itu membuat merapikan PITA. Dalam lingkungan bersama seperti server terminal yang memiliki potensi nastiness.
Rob Moir
Hm, memotong. Sepertinya saya perlu menguji ini.
MDMarra
Saya menghapusnya ketika jawaban @ MarkM terdengar paling masuk akal secara kanonik, tetapi sepertinya itu tidak bekerja untuk semua pengguna setelah KyleBrandt mengujinya. Saya pikir tidak ada cara yang terdokumentasi untuk melakukannya dengan benar karena keamanan, kemungkinan besar ... kemampuan untuk menghapus barang-barang pengguna lain karena sampah adalah bagian dari profil mereka (roaming) bisa menjadi risiko keamanan.
Bart Silverstrim
Menghapus jawaban saya, yaitu.
Bart Silverstrim
6

Saya menjalankan TreeSize Free dan melihat ada 15 gigs di Recycle Bin, tetapi saya tidak bisa melihatnya, mungkin karena itu dilakukan oleh pengguna yang sudah lama pergi. Tapi di TreeSize Pro saya bisa menghapusnya, yang memasukkan data ke Recycle Bin yang bisa saya lihat.

sinar
sumber
8
WinDirStat bisa melakukannya secara gratis. Ini alat saya pergi ketika saya perlu mencari tahu apa yang menggunakan semua ruang pada hard drive. Anda dapat mengklik kanan pada file atau folder dan menghapusnya ke recycle bin atau secara permanen, Anda juga dapat mengklik kanan dan membuka jendela Explorer di sana atau Command Prompt. Ini juga tidak memiliki keraguan untuk menunjukkan kepada Anda semua pengguna Keranjang Sampah, meskipun Anda harus mencari SID dan mencocokkannya dengan masing-masing pengguna sendiri.
JamesH
3

Ini berfungsi untuk saya: -

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

Ini akan menghapus recycle.bin; Windows akan membuat ulang tempat sampah sesuai kebutuhan, yaitu segera setelah pengguna menghapus file baru.

Mungkin tidak ada kode yang paling elegan dan mungkin ada cara yang lebih baik untuk melakukannya tetapi ini akan membantu membebaskan ruang pada server yang macet. Anda dapat mengujinya menggunakan sakelar -WhatIf pada perintah Remove-Item.

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

NB: Setiap drive memiliki tempat sampah sendiri; jadi Anda ingin mengganti huruf drive dengan drive mana Anda menjalankan perintah ini, atau Anda dapat menggunakan yang berikut ini untuk semua drive lokal:

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 }

Semoga ini membantu

K Clethero
sumber
1

Saya memiliki tempat sampah daur ulang yang memperlihatkan lebih dari 4GB data tetapi saya tidak dapat menghapusnya. Masuk dan menemukan banyak profil yang tidak lagi digunakan di server dan menghapusnya di bawah properti sistem - Advanced - Profil Pengguna dan sekarang tempat sampah kosong.

Jelas tidak menghapus akun apa pun yang saat ini atau sedang digunakan tetapi sebagai administrator, Anda dapat melakukannya dengan cara ini.

Andrew
sumber
0

Saya menyukai solusi ini karena mudah untuk memahami apa yang dilakukannya dan melakukan pekerjaannya, tetapi untuk dapat bekerja dari lokasi mana pun Anda menjalankan perintah, Anda perlu menjalankan mengubahnya seperti ini (menambahkan \ setelah "drive_letter: ") dan untuk dapat menghapus folder tersebut dari pengguna lain .. Anda perlu menambahkan" -force "di akhir perintah remove-item. Selain itu saat Anda menghapus semua folder dalam C: \ $ Recycle.bin \ Anda tidak perlu memasukkan "-kursi" saat mendapatkan item anak. Jadi ini akan menjadi perintah terakhir yang akan saya gunakan sebagai gantinya:

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

menghapus -Apa Jika Anda ingin melakukan lebih dari hanya menguji perintah

Mike
sumber
0

Gunakan proses di bawah ini untuk menghapus semua file.

  1. masuk sebagai pengguna admin & jelajahi c drive
  2. hapus centang sembunyikan file sistem operasi terlindungi dari opsi folder
  3. browse $ Recycle.Bin folder
  4. hapus semua file & folder
  5. kosongkan tempat sampah Anda

Semua file akan dihapus dari disk.

Rajnish Pati
sumber