Wie kann der Papierkorb für alle Benutzer in Windows Server 2008 R2 ordnungsgemäß geleert werden?
Wie kann der Papierkorb für alle Benutzer in Windows Server 2008 R2 ordnungsgemäß geleert werden?
Antworten:
Soweit ich das beurteilen kann, handelt es sich hierbei nicht um eine "offizielle" von Microsoft unterstützte Methode. Es gibt zwei Möglichkeiten. Eine davon besteht darin, c: \ $ Recycle.Bin zu löschen, und die andere darin, cleanmgr.exe für jede Benutzeranmeldung als Skript auszuführen.
Die "offizielle" Unterstützung für das Löschen von c: \ $ Recycle.bin kommt dieser MS-KB am nächsten , die auf XP und Vista verweist, jedoch das erwartete Verhalten impliziert.
Wenn dies sofort geschehen soll, können Sie anscheinend einfach ausführen, rd /s c:\$Recycle.Bin
und Windows sollte die erforderlichen Ordner beim nächsten Mal neu erstellen, wenn sie benötigt werden. Ich habe das gerade schnell getestet und es scheint zu funktionieren, aber natürlich mit Vorsicht vorgehen.
Sie können dies mit dem Tool zur Datenträgerbereinigung (cleanmgr.exe) tun. Leider hat Microsoft beschlossen, dies mit den "Desktop Experience" -Features zu bündeln, was bedeutet, dass Sie eine Reihe anderer Fehler installieren und neu starten müssen.
Die Alternative besteht darin, die folgenden zwei Dateien zu erfassen und sie per Technet an die angegebenen Speicherorte zu verschieben :
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 sollte sich in% systemroot% \ System32 befinden.
Cleanmgr.exe.mui sollte sich in% systemroot% \ System32 \ en-US befinden.
Wenn Sie cleanmgr alleine ausführen, können Sie nicht den Papierkorb aller löschen. Sie können jedoch / sageset und / sagerun verwenden, um ein Anmeldeskript zu erstellen, das für alle Benutzer über ein Gruppenrichtlinienobjekt ausgeführt wird und den Papierkorb bei der nächsten Anmeldung löscht, wie hier beschrieben . Es ist nicht das Sauberste, aber es wird funktionieren. Der verknüpfte Artikel bezieht sich auf XP, die Syntax ist jedoch ab Server 2008 R2 unverändert.
cleanmgr
, das bei jedem Login ausgeführt wird, einer offiziellen MS-Methode am nächsten kommt. Die Alternative besteht darin, den Papierkorbordner in jedem Profil zu entfernen. Es sollte beim nächsten Login für jeden Benutzer neu erstellt werden, aber ich wäre ein wenig müde, dies in der Produktion zu versuchen.
Ich glaube nicht, dass es eine angemessene Art der Dokumentation gibt, da die Papierkörbe für Benutzer in ihren Profilen getrennt gehalten werden. Dies wäre auch ein Sicherheitsrisiko, da Dokumente oder Elemente im Papierkorb, wenn sie von Benutzern gelesen werden, das Auslaufen bestimmter Dokumente ermöglichen könnten.
Es ist möglicherweise möglich, ein Skript mit Administratorrechten zu erstellen, um Dateien aus dem Papierkorb jedes lokalen Profils auszuführen und zu löschen (dies wird jedoch möglicherweise weiterhin mit dem Server synchronisiert, auf dem sich Ihre Profile befinden, wenn Sie über servergespeicherte Profile verfügen). Sie müssen jedoch die Berechtigungen und das Eigentumsrecht ordnungsgemäß festlegen. Ich weiß, dass der Administrator auf unseren Servern keinen ordnungsgemäßen Zugriff auf die Profile auf dem Speicherserver hat. Der Administrator muss den Besitz des Profils übernehmen, und wenn wir fertig sind, geben Sie den Besitz an den richtigen Benutzer zurück. Andernfalls funktionieren die Profile für ihn nicht mehr ordnungsgemäß.
Sie können versuchen, einen Prozess beim Abmelden auszuführen, der das Papierkorbverzeichnis pro Benutzer löscht, aber auch das versehentliche Löschen von Daten beinhaltet, die später wiederhergestellt werden sollen. Diese werden nun gelöscht, da sie beim letzten Abmelden gelöscht wurden.
Wahrscheinlich besteht die "richtige" Möglichkeit darin, Kontingente auf Workstations und Servern zu konfigurieren. Wenn dieses Kontingent für die Speicherung erreicht wird, muss der Benutzer feststellen, dass Elemente aus dem Papierkorb gelöscht werden müssen. Aus Sicherheitsgründen wäre es ein Trainingsproblem. Andernfalls benötigen Sie eine Problemumgehung.
@markm hatte einen Hilfsprogrammvorschlag, der dies zu tun scheint. Ich stehe zu der Behauptung, dass dies kein "richtiger" Weg ist, da es sich um ein Add-On handelt und nicht standardmäßig in Windows integriert ist (obwohl ich nicht überrascht bin, dass das hilfreiche Verwaltungsdienstprogramm nicht enthalten ist.). Bei der Verwendung ist zu befürchten, dass das Programm möglicherweise auf einer Arbeitsstation und auf dem Server ausgeführt werden muss, oder dass Probleme bei der Profilsynchronisierung auftreten, wenn angezeigt wird, wo. Es sieht so aus, als wäre es nur ein Minitool für den Zugriff auf die Registerkarte "Datenträgerbereinigung" in Windows.
Ein anderer Gedanke ... ungetestet ... wäre, die Ordnerumleitung zu verwenden, um ihren Papierkorbordner auf einen zentralen Server umzuleiten. Ich würde dies jedoch als monumental schlechte Idee einstufen. Dann würden Sie ihre Dateien aus diesem freigegebenen Verzeichnis löschen. Wenn Sie dies über das Netzwerk, die Sicherheitseinstellungen usw. verknüpfen, wird dies zu einem vorrangigen Problem, das andere Sysadmins davonlaufen lässt, bevor sie sich spontan entzünden.
Ich führte TreeSize Free aus und stellte fest, dass ich 15 GB im Papierkorb hatte, aber ich konnte es nicht sehen, wahrscheinlich, weil es von einem längst verstorbenen Benutzer durchgeführt wurde. Aber in TreeSize Pro konnte ich es löschen, wodurch die Daten in den Papierkorb verschoben wurden, die ich sehen konnte.
Das funktioniert bei mir: -
Get-ChildItem "C:\`$Recycle.bin\" | Remove-Item -Recurse -Force
Dadurch wird der Papierkorb entfernt. Windows erstellt den Papierkorb nach Bedarf neu, dh sobald ein Benutzer eine neue Datei löscht.
Möglicherweise ist dies nicht der eleganteste Code, und möglicherweise gibt es einen besseren Weg, dies zu tun, aber er hilft dabei, Speicherplatz auf einem überlasteten Server freizugeben. Sie können es mit der Option -WhatIf im Befehl Remove-Item testen.
Get-ChildItem "C:\`$Recycle.bin\" | Remove-Item -Recurse -Force -WhatIf
Hinweis: Jedes Laufwerk verfügt über einen eigenen Papierkorb. Sie möchten also den Laufwerksbuchstaben durch das Laufwerk ersetzen, für das Sie diesen Befehl ausführen, oder Sie können Folgendes für alle lokalen Laufwerke verwenden:
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 }
Hoffe das hilft
Ich hatte einen Papierkorb mit mehr als 4 GB Daten, konnte diese jedoch nicht löschen. Ging ein und fand eine Reihe von Profilen, die nicht mehr auf dem Server verwendet wurden, und entfernte sie unter Systemeigenschaften - Erweitert - Benutzerprofile und jetzt ist der Papierkorb leer.
Löschen Sie natürlich keine Konten, die noch aktuell sind oder verwendet werden. Als Administrator können Sie dies jedoch auf diese Weise tun.
Ich mochte diese Lösung, weil sie leicht zu verstehen ist, was sie tut und was sie erledigt, aber um von jedem Ort aus zu arbeiten, von dem aus Sie den Befehl ausführen, müssen Sie sie folgendermaßen ändern (Hinzufügen eines \ nach dem "drive_letter: ") und um diesen Ordner von anderen Benutzern löschen zu können .. müssen Sie die" -force "am Ende des Befehls remove-item hinzufügen. Da Sie außerdem alle Ordner in C: \ $ Recycle.bin \ löschen, müssen Sie beim Abrufen der untergeordneten Elemente nicht "-recurse" angeben. Dies ist also der letzte Befehl, den ich stattdessen verwenden würde:
Get-ChildItem "C:` $ Recycle.bin \ "-Force | Remove-Item -Recurse -force -WhatIf
Entfernen von -WhatIf, wenn Sie mehr als nur den Befehl testen möchten
Verwenden Sie den folgenden Prozess, um alle Dateien zu entfernen.
Alle Dateien werden von der Festplatte gelöscht.