Apa cara yang tepat untuk menghapus keranjang sampah untuk semua pengguna di Windows Server 2008 R2?
Apa cara yang tepat untuk menghapus keranjang sampah untuk semua pengguna di Windows Server 2008 R2?
Jawaban:
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.
Jika Anda ingin ini terjadi segera, tampaknya Anda bisa menjalankannya rd /s c:\$Recycle.Bin
dan 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.
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.
cleanmgr
untuk 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.
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.
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.
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
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.
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
Gunakan proses di bawah ini untuk menghapus semua file.
Semua file akan dihapus dari disk.