Wyczyść kosz dla wszystkich użytkowników w systemie Windows Server 2008 R2

Odpowiedzi:

34

O ile wiem, nie jest to „oficjalny” sposób obsługiwany przez Microsoft. Istnieją dwie opcje. Jeden z nich polega na usunięciu c: \ $ Recycle.Bin, a drugi to wykonanie skryptu cleanmgr.exe w celu uruchomienia przy każdym logowaniu użytkownika.

Najbliższa rzecz do „oficjalnej” obsługi usuwania c: \ $ Recycle.bin pochodzi z tego MS KB , który odwołuje się do XP i Visty, ale sugeruje oczekiwane zachowanie.


Natychmiastowe usunięcie

Jeśli chcesz, aby stało się to natychmiast, wydaje się, że możesz po prostu uruchomić, rd /s c:\$Recycle.Bina system Windows powinien ponownie utworzyć niezbędne foldery następnym razem, gdy będą potrzebne. Właśnie to przetestowałem szybko i wydaje się, że działa, ale - oczywiście - postępuj ostrożnie.


Powtarzające się skrypty logowania

Możesz to zrobić za pomocą narzędzia Oczyszczanie dysku (cleanmgr.exe). Niestety Microsoft zdecydował się połączyć to z zestawem funkcji „Desktop Experience”, co oznacza, że ​​będziesz musiał zainstalować kilka innych badziewi i zrestartować komputer.

Alternatywą jest pobranie następujących dwóch plików i przeniesienie ich do określonych lokalizacji według 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 powinien przejść w% systemroot% \ System32.

Cleanmgr.exe.mui powinien przejść do katalogu% systemroot% \ System32 \ en-US.

Samo uruchomienie cleanmgr nie pozwoli ci wyczyścić kosza dla wszystkich, ale możesz użyć / sageset i / sagerun, aby utworzyć skrypt logowania, który będzie działał dla wszystkich użytkowników przez GPO, który wyczyści ich kosz przy następnym logowaniu, jak opisano tutaj . To nie jest najczystsza rzecz, ale zadziała. Połączony artykuł dotyczy XP, ale składnia pozostaje niezmieniona od wersji Server 2008 R2.

MDMarra
źródło
Zrobiłem trochę badań nad tym, było to łącze, które trochę się rozwija. social.technet.microsoft.com/Forums/en-US/winserverManagement/…
Bart Silverstrim
Testowane, nie wyjaśnia tego wszystkim użytkownikom. Naprawdę nie chcę kontaktować się z naszym kontrahentem i pozwolić mu zalogować się tylko po to, aby usunąć niektóre pliki ...
Kyle Brandt
Tak, mogę również potwierdzić to zachowanie. Wygląda na to, że skrypty cleanmgruruchamiane przy każdym logowaniu są najbliższą oficjalną metodą MS. Alternatywą jest wysadzenie folderu kosza na każdym profilu. To powinno odtworzyć go na następnym logowaniu dla każdego użytkownika, ale byłbym trochę zmęczony spróbować tego w produkcji.
MDMarra,
Więcej informacji na temat automatyzacji CleanMgr tutaj ... stackoverflow.com/a/35214197/80161
Nathan Hartley
9

Nie sądzę, aby istniał odpowiedni sposób udokumentowany, ponieważ kosze na śmieci dla użytkowników są przechowywane osobno w swoich profilach; byłoby to również niebezpieczne ze względu na bezpieczeństwo, ponieważ dokumenty lub przedmioty w koszu, jeśli zostały przejrzane przez użytkowników, mogą pozwolić na wyciek niektórych dokumentów.

Możliwe może być wykonanie skryptu z uprawnieniami administratora do uruchamiania i usuwania plików z kosza każdego profilu lokalnego (ale nadal może być zsynchronizowany z serwerem przechowującym profile, jeśli masz profile mobilne) Ale musisz mieć odpowiednio ustawione uprawnienia i prawa własności; Wiem, że na naszych serwerach Administrator nie ma odpowiedniego dostępu do profili na serwerze pamięci; administrator musi przejąć na własność profil, a kiedy skończymy, zwróć własność właściwemu użytkownikowi, w przeciwnym razie profile nie będą już dla nich działać poprawnie.

Możesz spróbować uruchomić proces przy wylogowywaniu, który usuwa katalog kosza na użytkownika, ale pociąga za sobą również przypadkowe usunięcie czegoś, co chce odzyskać później i którego już nie ma, ponieważ został on usunięty przy ostatnim wylogowaniu.

Prawdopodobnie „właściwym” sposobem na to jest skonfigurowanie przydziałów na stacjach roboczych i serwerach, a kiedy ten przydział zostanie wykorzystany do przechowywania, użytkownik dowiaduje się, że musi usunąć elementy z kosza. Ze względów bezpieczeństwa byłby to problem szkoleniowy. W przeciwnym razie potrzebujesz obejścia.

@markm miał sugestię narzędzia, która wydaje się to robić; Stoję na stanowisku, że nie jest to „właściwy” sposób, ponieważ jest to dodatek i domyślnie nie jest wbudowany w system Windows (chociaż nie jestem zaskoczony, że przydatne narzędzie administracyjne nie jest uwzględnione). Jedyny inny problem to „ martwię się o to, że może być konieczne uruchomienie go na stacji roboczej i na serwerze lub problemy z synchronizacją profilu z tym, co pojawia się gdzie. Wygląda na to, że ma to być tylko mini-narzędzie do dostępu do zakładki „czyszczenie dysku” w systemie Windows.

Inną myślą ... nie przetestowaną ... byłoby użycie przekierowania folderu do przekierowania folderu kosza na serwer centralny. Sklasyfikowałbym to jednak jako monumentalnie zły pomysł (tm). Następnie usuń ich pliki z tego udostępnionego katalogu. Powiązanie tego przez sieć, konfigurację zabezpieczeń itp. Sprawiłoby, że byłaby to kludge na pierwszym poziomie, która sprawiłaby, że inni administratorzy uciekliby przed spontanicznym spaleniem.

Bart Silverstrim
źródło
Czyszczenie dysku jest uruchamiane, ponieważ podniesiony użytkownik nie trafia do kosza wszystkich użytkowników?
MDMarra,
Mam nadzieję, że nawet jeśli będzie to porządek w PITA. We wspólnym środowisku, takim jak serwer terminali, który może być nieprzyjemny.
Rob Moir
Hm, ciekawe. Wygląda na to, że muszę to przetestować.
MDMarra,
Usunąłem go, gdy odpowiedź @ MarkM brzmiała najbardziej kanonicznie rozsądnie, ale wygląda na to, że nie działa dla wszystkich użytkowników po przetestowaniu go przez KyleBrandta. Myślę, że nie ma udokumentowanego sposobu, aby zrobić to właściwie ze względu na bezpieczeństwo, najprawdopodobniej ... możliwość usunięcia rzeczy innych użytkowników, ponieważ kosz jest częścią ich profilu (mobilnego) może stanowić zagrożenie bezpieczeństwa.
Bart Silverstrim,
To znaczy usunąłem moją odpowiedź.
Bart Silverstrim
6

Uruchomiłem TreeSize Free i zobaczyłem, że mam 15 koncertów w Koszu, ale nie widziałem tego, prawdopodobnie dlatego, że zostało to zrobione przez dawno zmarłego użytkownika. Ale w TreeSize Pro mogłem go usunąć, co umieściło dane w Koszu, który mogłem zobaczyć.

Promień
źródło
7
WinDirStat mógł to zrobić za darmo. To moje narzędzie, kiedy muszę dowiedzieć się, co zajmuje całą przestrzeń na dysku twardym. Możesz kliknąć plik lub folder prawym przyciskiem myszy i usunąć go do kosza lub na stałe, możesz także kliknąć prawym przyciskiem myszy i otworzyć okno Eksploratora lub wiersz polecenia. Nie ma też żadnych skrupułów, by pokazywać wszystkim użytkownikom Kosze, chociaż trzeba samemu sprawdzić identyfikatory SID i dopasować je do każdego użytkownika.
JamesH
3

To działa dla mnie: -

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

Spowoduje to usunięcie recycle.bin; System Windows odtworzy kosz zgodnie z wymaganiami, tj. Jak tylko użytkownik usunie nowy plik.

Może nie być to najbardziej elegancki kod i może istnieć lepszy sposób, ale pomoże to zwolnić miejsce na zatłoczonym serwerze. Możesz to przetestować za pomocą przełącznika -WhatIf w poleceniu Remove-Item.

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

NB: Każdy dysk utrzymuje własny kosz; więc chcesz zastąpić literę dysku dowolnym dyskiem, dla którego uruchamiasz to polecenie, lub możesz użyć następującego polecenia dla wszystkich dysków lokalnych:

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 }

Mam nadzieję że to pomoże

K Clethero
źródło
1

Miałem kosz, który wyświetlał ponad 4 GB danych, ale nie mogłem go wyczyścić. Poszedłem i znalazłem kilka profili, które nie były już używane na serwerze i usunąłem je we właściwościach systemu - Zaawansowane - Profile użytkowników, a teraz kosz jest pusty.

Oczywiście nie usuwaj żadnych kont, które są nadal aktualne lub używane, ale jako administrator możesz to zrobić w ten sposób.

Andrzej
źródło
0

Podobało mi się to rozwiązanie, ponieważ łatwo jest zrozumieć, co robi i wykonuje zadanie, ale aby pracować z dowolnego miejsca, z którego uruchamiasz polecenie, musisz je zmienić w ten sposób (dodając \ po „drive_letter: ”) i aby móc usunąć ten folder z innych użytkowników .. musisz dodać„ -force ”na końcu polecenia remove-item. Ponadto podczas usuwania wszystkich folderów w folderze C: \ $ Recycle.bin \ nie trzeba dołączać „-recurse” podczas pobierania elementów potomnych. To będzie ostatnie polecenie, którego użyłbym w zamian:

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

usunięcie -WhatIf, jeśli chcesz zrobić więcej niż tylko testowanie polecenia

Mikrofon
źródło
0

Użyj poniższego procesu, aby usunąć wszystkie pliki.

  1. zaloguj się jako administrator i poznaj dysk c
  2. niezaznaczone ukryj chroniony plik systemu operacyjnego przed opcjami folderu
  3. przeglądaj folder $ Recycle.Bin
  4. usuń wszystkie pliki i foldery
  5. opróżnij kosz

Wszystkie pliki zostaną usunięte z dysku.

Rajnish Pati
źródło