Borre la papelera de reciclaje para todos los usuarios en Windows Server 2008 R2

Respuestas:

34

Por lo que puedo decir, esta no es una forma "oficial" compatible con Microsoft de hacer esto. Hay dos opciones Uno implica eliminar c: \ $ Recycle.Bin y el otro es crear secuencias de comandos cleanmgr.exe para ejecutar en cada inicio de sesión de usuario.

Lo más parecido al soporte "oficial" para eliminar c: \ $ Recycle.bin es de este MS KB , que hace referencia a XP y Vista, pero implica el comportamiento esperado.


Eliminación inmediata

Si desea que esto suceda de inmediato, parece que solo puede ejecutar rd /s c:\$Recycle.Biny Windows debería volver a crear las carpetas necesarias la próxima vez que las necesite. Acabo de probar esto rápidamente y parece funcionar, pero, obviamente, proceder con precaución.


Eliminación recurrente de secuencias de comandos de inicio de sesión

Puede hacerlo con la herramienta Liberador de espacio en disco (cleanmgr.exe). Desafortunadamente, Microsoft decidió agrupar esto con el conjunto de características "Experiencia de escritorio", lo que significa que tendrá que instalar un montón de otros tipos de basura y reiniciar.

La alternativa es tomar los siguientes dos archivos y moverlos a las ubicaciones especificadas por 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 debería ir en% systemroot% \ System32.

Cleanmgr.exe.mui debería ir en% systemroot% \ System32 \ en-US.

Ejecutar cleanmgr solo no le permitirá borrar la papelera de reciclaje de todos, pero puede usar / sageset y / sagerun para crear un script de inicio de sesión que se ejecute para todos los usuarios a través de GPO que borrará su papelera de reciclaje en el próximo inicio de sesión, como se describe aquí . No es lo más limpio, pero funcionará. El artículo vinculado es para XP, pero la sintaxis no ha cambiado a partir de Server 2008 R2.

MDMarra
fuente
Investigué un poco al respecto, hubo un enlace que explica un poco más. social.technet.microsoft.com/Forums/en-US/winserverManagement/…
Bart Silverstrim
Probado, esto no lo aclara para todos los usuarios. Realmente no quiero tener que contactar a nuestro contratista y que inicie sesión solo para eliminar algunos archivos ...
Kyle Brandt
Sí, también puedo confirmar este comportamiento. Parece que cualquiera de los scripts cleanmgrque se ejecutan en cada inicio de sesión es lo más parecido a una forma oficial de MS de hacerlo. La alternativa es eliminar la carpeta de la papelera de reciclaje de cada perfil. Se debe volver a crearla en el siguiente inicio de sesión para cada usuario, pero me gustaría ser un poco de miedo a probar esto en la producción.
MDMarra
Más información sobre la automatización de CleanMgr aquí ... stackoverflow.com/a/35214197/80161
Nathan Hartley
9

No creo que haya una forma adecuada de documentarse, ya que las papeleras de reciclaje para los usuarios se mantienen separadas en sus perfiles; esto también sería un peligro para la seguridad, ya que los documentos o elementos en la papelera de reciclaje, si los usuarios lo examinan detenidamente, podrían permitir la filtración de ciertos documentos.

Es posible que pueda ejecutar un script con privilegios de administrador para ejecutar y borrar archivos de la papelera de cada perfil local (pero eso podría estar sincronizado con el servidor que contiene sus perfiles si tiene perfiles móviles). Pero debe tener los permisos y la propiedad configurados correctamente; Sé que en nuestros servidores, el administrador no tiene acceso adecuado a los perfiles en el servidor de almacenamiento; el administrador debe tomar posesión del perfil y, cuando hayamos terminado, devolver la propiedad al usuario adecuado o los perfiles ya no funcionarán correctamente para ellos.

Puede intentar ejecutar un proceso al cerrar sesión que borre el directorio de basura por usuario, pero que también implique eliminar accidentalmente algo que desean recuperar más tarde y que ahora desaparecerá desde que se eliminó en el último cierre de sesión.

Probablemente, la forma "adecuada" de hacerlo es configurar cuotas en estaciones de trabajo y servidores y cuando esa cuota se alcanza para el almacenamiento, el usuario se entera de que tiene que eliminar elementos de la papelera de reciclaje. Por seguridad, sería un problema de capacitación. De lo contrario, necesitaría una solución alternativa.

@markm tenía una sugerencia de utilidad que parece hacer esto; Mantengo la afirmación de que no es una forma "adecuada", ya que es un complemento y no está integrado en Windows de forma predeterminada (aunque no me sorprende que la útil utilidad de administración no esté incluida). El único otro problema que tengo es Lo que le preocupa al usarlo es que podría tener que ejecutarse en una estación de trabajo y en el servidor o podría tener problemas de sincronización de perfil con lo que aparece donde. Parece que se supone que es solo una mini herramienta para acceder a la pestaña "limpieza de disco" en Windows.

Otro pensamiento ... no probado ... sería usar la redirección de carpetas para redirigir su carpeta de basura a un servidor central. Sin embargo, clasificaría esto como una idea monumentalmente mala (tm). Luego eliminarías sus archivos de ese directorio compartido. Sin embargo, vincular esto a través de la red, la configuración de seguridad, etc., lo convertiría en un error de prioridad de nivel uno que haría que otros administradores de sistemas se escaparan antes de la combustión espontánea.

Bart Silverstrim
fuente
¿La limpieza del disco que se ejecuta como un usuario elevado no llega a la papelera de reciclaje de todos?
MDMarra
Espero que no, incluso si eso hace que poner en orden una PITA. En un entorno compartido, como un servidor de terminal que tiene potencial para ser desagradable.
Rob Moir
Hm, interesante. Parece que necesito probar esto.
MDMarra
Lo eliminé cuando la respuesta de @MarkM sonó lo más canónicamente razonable, pero parece que no funciona para todos los usuarios después de que KyleBrandt lo probó. Estoy pensando que no hay una forma documentada de hacerlo correctamente debido a la seguridad, lo más probable ... la capacidad de eliminar cosas de otros usuarios ya que la basura es parte de su perfil (roaming) podría ser un riesgo de seguridad.
Bart Silverstrim
Eliminé mi respuesta, eso es.
Bart Silverstrim
6

Ejecuté TreeSize Free y vi que tenía 15 gigas en la Papelera de reciclaje, pero no pude verlo, probablemente porque fue hecho por un usuario que se fue hace mucho tiempo. Pero en TreeSize Pro pude eliminarlo, lo que puso los datos en la Papelera de reciclaje que pude ver.

Rayo
fuente
8
WinDirStat podría haberlo hecho gratis. Es mi herramienta de acceso cuando necesito averiguar qué está usando todo el espacio en un disco duro. Puede hacer clic con el botón derecho en un archivo o carpeta y eliminarlo de la papelera de reciclaje o de forma permanente, también puede hacer clic con el botón derecho y abrir una ventana del Explorador allí o un Símbolo del sistema. Tampoco tiene reparos en mostrarle a todos los usuarios Papeleras de reciclaje, aunque debe buscar los SID y compararlos con cada usuario usted mismo.
JamesH
3

Esto funciona para mí: -

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

Eliminará el recycle.bin; Windows volverá a crear la papelera de reciclaje según sea necesario, es decir, tan pronto como un usuario elimine un nuevo archivo.

Puede que no sea el código más elegante y puede haber una mejor manera de hacerlo, pero ayudará a liberar espacio en un servidor congestionado. Puede probarlo usando el interruptor -WhatIf en el comando Remove-Item.

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

NB: cada unidad mantiene su propia papelera de reciclaje; por lo que querrá reemplazar la letra de la unidad con la unidad para la que esté ejecutando este comando, o puede usar lo siguiente para todas las unidades locales:

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 }

Espero que esto ayude

K Clethero
fuente
1

Tenía una papelera de reciclaje que mostraba más de 4 GB de datos, pero no pude borrarla. Entró y encontró un montón de perfiles que ya no se usaban en el servidor y los eliminó en las propiedades del sistema - Avanzado - Perfiles de usuario y ahora la papelera de reciclaje está vacía.

Obviamente, no elimine ninguna cuenta que todavía esté vigente o en uso, pero como administrador, puede hacerlo de esta manera.

Andrés
fuente
0

Me gustó esta solución porque es fácil de entender lo que está haciendo y hace el trabajo, pero para trabajar desde cualquier ubicación desde la que ejecute el comando, debe ejecutar cambiarlo de esta manera (agregando un \ después del "drive_letter: ") y para poder eliminar esa carpeta de otros usuarios ... debe agregar" -force "al final del comando remove-item. Además, como está eliminando todas las carpetas dentro de C: \ $ Recycle.bin \, no necesita incluir "-recurse" al obtener los elementos secundarios. Entonces este será el comando final que usaría en su lugar:

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

eliminando -WhatIf si quieres hacer más que solo probar el comando

Micro
fuente
0

Utilice el siguiente proceso para eliminar todos los archivos.

  1. Inicie sesión como usuario administrador y explore c drive
  2. ocultar el archivo del sistema operativo protegido sin marcar de las opciones de carpeta
  3. navegar por la carpeta $ Recycle.Bin
  4. eliminar todos los archivos y carpetas
  5. vaciar su papelera de reciclaje

Todos los archivos serán eliminados del disco.

Rajnish Pati
fuente