Xóa thùng rác cho tất cả người dùng trong Windows Server 2008 R2


Câu trả lời:


34

Theo như tôi có thể nói, đây không phải là cách "chính thức" được Microsoft hỗ trợ để thực hiện việc này. Có hai lựa chọn. Một liên quan đến việc xóa c: \ $ Recycl.Bin và cái còn lại là script script Cleanmgr.exe để chạy ở mỗi lần đăng nhập của người dùng.

Điều gần nhất với hỗ trợ "chính thức" để xóa c: \ $ Recycl.bin là từ MS KB này , tham chiếu XP và Vista, nhưng ngụ ý hành vi dự kiến.


Xóa ngay lập tức

Nếu bạn muốn điều này xảy ra ngay lập tức, có vẻ như bạn chỉ có thể chạy rd /s c:\$Recycle.Binvà Windows sẽ tạo lại các thư mục cần thiết vào lần tiếp theo khi cần. Tôi chỉ thử nghiệm điều này một cách nhanh chóng và nó có vẻ hoạt động, nhưng - rõ ràng - tiến hành thận trọng.


Định kỳ xóa logon-scriptable

Bạn có thể làm điều này với công cụ Disk Cleanup (cleanmgr.exe). Thật không may, Microsoft đã quyết định kết hợp tính năng này với bộ tính năng "Trải nghiệm máy tính để bàn", nghĩa là bạn sẽ phải cài đặt một loạt các crap khác và khởi động lại.

Cách khác là lấy hai tệp sau và di chuyển chúng đến các vị trí đã chỉ định trên mỗi 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 nên có trong% systemroot% \ System32.

Cleanmgr.exe.mui nên vào% systemroot% \ System32 \ en-US.

Chạy Cleanmgr một mình sẽ không cho phép bạn xóa thùng rác của mọi người, nhưng bạn có thể sử dụng / sageset và / sagerun để tạo tập lệnh đăng nhập chạy cho tất cả người dùng thông qua GPO sẽ xóa thùng rác của họ trong lần đăng nhập tiếp theo, như được mô tả ở đây . Nó không phải là thứ sạch nhất, nhưng nó sẽ hoạt động. Bài viết được liên kết là dành cho XP, nhưng cú pháp không thay đổi kể từ Server 2008 R2.


Đã làm một nghiên cứu nhỏ về nó, có liên kết này xây dựng một chút. social.technet.microsoft.com/Forums/en-US/winserverQuản lý / từ
Bart Silverstrim

Đã thử nghiệm, điều này không xóa nó cho tất cả người dùng. Đừng thực sự muốn liên hệ với nhà thầu của chúng tôi và yêu cầu anh ấy đăng nhập chỉ để xóa một số tệp ...
Kyle Brandt

Vâng, tôi có thể xác nhận hành vi này là tốt. Có vẻ như kịch bản cleanmgrđể chạy trong mỗi lần đăng nhập là điều gần nhất với cách làm MS chính thức. Cách khác là thổi bay thư mục thùng rác trên mỗi hồ sơ. Nó sẽ tạo lại nó trong lần đăng nhập tiếp theo cho mỗi người dùng, nhưng tôi sẽ hơi mệt mỏi khi thử điều này trong sản xuất.
MDMarra

Thông tin thêm về việc tự động hóa CleanMgr tại đây ... stackoverflow.com/a/35214197/80161
Nathan Hartley

9

Tôi không nghĩ có một cách thích hợp được ghi lại là thùng rác cho người dùng được giữ riêng trong hồ sơ của họ; đây cũng sẽ là một mối nguy hiểm về bảo mật vì các tài liệu hoặc vật phẩm trong thùng rác, nếu người dùng lạm dụng, có thể cho phép một số tài liệu bị rò rỉ.

Có thể kịch bản một tập lệnh đặc quyền của quản trị viên để chạy và xóa các tệp khỏi thùng rác của từng hồ sơ cục bộ (nhưng vẫn có thể được đồng bộ hóa với máy chủ giữ hồ sơ của bạn nếu bạn có hồ sơ chuyển vùng). Nhưng bạn cần phải có quyền và quyền sở hữu được thiết lập đúng; Tôi biết trên máy chủ của chúng tôi Quản trị viên không có quyền truy cập thích hợp vào hồ sơ trên máy chủ lưu trữ; quản trị viên phải có quyền sở hữu hồ sơ và khi chúng tôi hoàn tất quyền sở hữu cho người dùng phù hợp hoặc các cấu hình khác không còn hoạt động đúng với họ nữa.

Bạn có thể thử chạy một quy trình khi đăng xuất để xóa thư mục rác cho mỗi người dùng, nhưng điều đó cũng kéo theo việc vô tình xóa thứ gì đó mà họ muốn khôi phục sau đó và sẽ biến mất vì nó đã bị xóa ở lần đăng xuất cuối cùng.

Có lẽ cách "phù hợp" để thực hiện là định cấu hình hạn ngạch trên máy trạm và máy chủ và khi hạn ngạch đó được lưu để lưu trữ, người dùng biết rằng họ phải xóa các mục khỏi thùng rác. Bởi vì an ninh nó sẽ là một vấn đề đào tạo. Nếu không, bạn cần một cách giải quyết.

@markm đã có một đề xuất tiện ích xuất hiện để làm điều này; Tôi khẳng định rằng đó không phải là một cách "phù hợp" vì nó là một tiện ích bổ sung và không được tích hợp vào Windows theo mặc định (mặc dù tôi không ngạc nhiên rằng tiện ích quản trị hữu ích không được bao gồm.) Điều lo lắng về việc sử dụng nó là nó có thể phải được chạy trên máy trạm và trên máy chủ hoặc bạn có thể gặp sự cố đồng bộ hóa hồ sơ với những gì xuất hiện ở đâu. Có vẻ như nó chỉ là một công cụ nhỏ để truy cập tab "dọn đĩa" trong Windows.

Một suy nghĩ khác ... chưa được kiểm tra ... sẽ là sử dụng chuyển hướng thư mục để chuyển hướng thư mục rác của họ đến một máy chủ trung tâm. Tuy nhiên, tôi sẽ phân loại nó như là một ý tưởng tồi tệ (tm). Sau đó, bạn sẽ xóa các tập tin của họ từ thư mục chia sẻ đó. Liên kết điều này qua mạng, thiết lập bảo mật, v.v.


Dọn dẹp đĩa chạy khi người dùng nâng cao không trúng thùng rác của mọi người?
MDMarra

Tôi hy vọng không ngay cả khi nó làm cho việc dọn dẹp Pita. Trong một môi trường được chia sẻ, chẳng hạn như một máy chủ đầu cuối có tiềm năng về sự khó chịu.
Rob Moir

Hừm, xen kẽ. Có vẻ như tôi cần phải kiểm tra điều này.
MDMarra

Tôi đã xóa nó khi câu trả lời của @ MarkM nghe có vẻ hợp lý nhất, nhưng có vẻ như nó không hoạt động đối với tất cả người dùng sau khi KyleBrandt thử nghiệm nó. Tôi nghĩ rằng không có cách nào để làm điều đó đúng cách vì bảo mật, rất có thể ... khả năng xóa nội dung của người dùng khác vì thùng rác là một phần trong hồ sơ (chuyển vùng) của họ có thể là một rủi ro bảo mật.
Bart Silverstrim

Xóa câu trả lời của tôi, đó là.
Bart Silverstrim

6

Tôi đã chạy TreeSize Free và thấy tôi có 15gigs trong Thùng rác, nhưng tôi không thể nhìn thấy nó, có lẽ vì nó được thực hiện bởi một người dùng đã rời đi từ lâu. Nhưng trong TreeSize Pro tôi có thể xóa nó, đưa dữ liệu vào Thùng rác mà tôi có thể thấy.


7
WinDirStat có thể làm điều đó miễn phí. Đây là công cụ của tôi khi tôi cần tìm ra cái gì đang sử dụng tất cả dung lượng trên ổ cứng. Bạn có thể nhấp chuột phải vào tệp hoặc thư mục và xóa tệp đó vào thùng rác hoặc vĩnh viễn, bạn cũng có thể nhấp chuột phải và mở cửa sổ Explorer ở đó hoặc Dấu nhắc lệnh. Nó cũng không có ý nghĩa gì về việc hiển thị cho bạn tất cả các thùng rác của người dùng, mặc dù bạn phải tự tìm kiếm SID và đối chiếu chúng với từng người dùng.
JamesH

3

Điều này làm việc cho tôi: -

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

Nó sẽ loại bỏ recycl.bin; Windows sẽ tạo lại thùng rác theo yêu cầu, tức là ngay khi người dùng xóa một tệp mới.

Có thể không có mã thanh lịch nhất và có thể có một cách tốt hơn để làm điều đó nhưng nó sẽ giúp giải phóng không gian trên một máy chủ bị tắc nghẽn. Bạn có thể kiểm tra nó bằng cách sử dụng công tắc -What If trên lệnh Remove-Item.

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

NB: Mỗi ổ đĩa duy trì thùng rác riêng của mình; vì vậy bạn muốn thay thế ký tự ổ đĩa bằng bất kỳ ổ đĩa nào bạn đang chạy lệnh này hoặc bạn có thể sử dụng cách sau cho tất cả các ổ đĩa cục bộ:

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 }

Hi vọng điêu nay co ich


1

Tôi đã có một thùng rác hiển thị trên 4GB dữ liệu nhưng tôi không thể xóa nó. Đi vào và tìm thấy một loạt các hồ sơ không còn được sử dụng trên máy chủ và xóa chúng theo thuộc tính hệ thống - Nâng cao - Hồ sơ người dùng và bây giờ thùng rác đã trống.

Rõ ràng không xóa bất kỳ tài khoản nào vẫn còn hiện hành hoặc đang sử dụng nhưng với tư cách là quản trị viên, bạn có thể thực hiện theo cách này.


0

Tôi thích giải pháp này vì dễ hiểu những gì nó đang làm và nó thực hiện công việc, nhưng để làm việc từ bất kỳ vị trí nào bạn chạy lệnh từ đó, bạn cần chạy thay đổi nó như thế này (thêm một \ sau "drive_letter: ") và để có thể xóa thư mục đó khỏi những người dùng khác .. bạn cần thêm" -force "vào cuối lệnh remove-item. Ngoài ra, khi bạn đang xóa tất cả các thư mục trong C: \ $ Recycl.bin \, bạn không cần bao gồm "-recurse" khi nhận các mục con. Vì vậy, đây sẽ là lệnh cuối cùng tôi sẽ sử dụng thay thế:

Get-ChildItem "C:` $ Recycl.bin \ "-Force | Xóa-Mục -Recurse-Force -What If

loại bỏ -What If nếu bạn muốn làm nhiều hơn là chỉ kiểm tra lệnh


0

Sử dụng quy trình dưới đây để loại bỏ tất cả các tập tin.

  1. đăng nhập với tư cách quản trị viên & khám phá ổ đĩa c
  2. bỏ chọn ẩn tệp hệ điều hành được bảo vệ khỏi các tùy chọn thư mục
  3. browse $ Recycle.Bin thư mục
  4. xóa tất cả các tập tin và thư mục
  5. đổ thùng rác của bạn

Tất cả các tập tin sẽ bị xóa khỏi đĩa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.