¿Eliminar archivos antiguos de Windows / programa de la segunda unidad?

22

Mi PC tiene un montón de unidades adicionales. La mayoría de ellos contienen copias antiguas de Windows y archivos de programa. Mi PC se llama "PC" y mi usuario administrador se llama "Tim". He asignado la propiedad de estas segundas unidades al usuario "PC \ Tim", y también le he dado al usuario "PC \ Tim" el control total de las unidades. Luego trato de eliminar las carpetas Windows o Archivos de programa en estas unidades, y recibo el mensaje.

"Se requiere permiso de PC \ Tim para realizar cambios en esta carpeta".

El propietario actual de estas carpetas aparece como "Tim (PC \ Tim)". Los permisos efectivos para estas carpetas enumeran que este usuario tiene todos los derechos.

Las absurdas "respuestas" en la comunidad de microsoft, por supuesto, ofrecen cosas como "Usar la limpieza del disco" (que es una respuesta descaradamente descartada) o "simplemente reformatear la unidad" (el formateo evita el problema en lugar de abordarlo).

¿Cuáles son los pasos correctos para eliminar estos archivos antiguos?

frumbert
fuente

Respuestas:

55
  1. Abra un símbolo del sistema con privilegios administrativos.
  2. Ejecute los siguientes comandos, uno a la vez (cambie "Z: \ Archivos de programa" con la carpeta que desea eliminar):

    takeown /F "Z:\Program Files" /A /R /D Y
    icacls "Z:\Program Files" /T /grant administrators:F
    rd /s /q "Z:\Program Files"
    

Nota 1 - Idioma del sistema operativo: takeown ... /D Yla entrada Y significa 'Sí' y será diferente según el idioma del sistema operativo. La carpeta de archivos de programa también puede tener un nombre diferente.

Nota 2 - Versiones anteriores de Windows: si icaclsy rdno son compatibles, intente usar caclsy en su rmdirlugar

Explicación y documentación:

El problema podría ser que no tiene los permisos correctos en las listas de control de acceso discrecional (DACL) para la carpeta y su contenido. Las DACL identifican a los administradores a los que se les permite o les niega el acceso a un objeto asegurable. Por lo tanto, simplemente dar la propiedad de la carpeta puede no ser suficiente, pero también debe otorgar permiso en las DACL. Puede otorgar permiso con el comando icacls como se muestra en el ejemplo anterior. Explicación de las listas de control de acceso y DACL

takeown takeown documentation El administrador recupera el acceso a un directorio y es contenido que anteriormente fue denegado, al hacer que el grupo de administradores sea el propietario. / F [directorio] especifica qué directorio, / A otorga la propiedad al grupo de administradores, / R lo realiza como operación recursiva en el directorio, todos los archivos y subdirectorios, / D suprime las solicitudes de confirmación cuando el usuario no tiene permiso de "Lista de carpetas" con siguiendo la opción Y que toma posesión del directorio. (Nota: la opción Y puede ser diferente según el idioma del sistema operativo).

icacls documentación de icacls Otorga al grupo los administradores permisos de acceso total DAC al directorio. [directorio] especifica qué directorio, / T realiza la operación en todos los archivos especificados en el directorio y subdirectorios, / grant otorga derechos de acceso de usuario especificados con : F, que proporciona acceso completo. (Nota: los administradores del nombre del grupo pueden ser diferentes según el idioma del sistema operativo)

rd rd documentación Elimina el directorio con todos sus subdirectorios y archivos. / s elimina el directorio especificado y sus subdirectorios, incluidos todos los archivos, / q especifica el modo silencioso para que no se solicite confirmación, [directorio] especifica qué directorio eliminar.

Arne H. Bitubekk
fuente
55
Para la Windowscarpeta, simplemente Windows.old
cámbiele
2
Caclsahora está en desuso, úsalo Icacls.
Tharindu Sathischandra
1
@Tharindu gracias, actualicé la respuesta con icacls ahora. Verifique que se vea correcto
Arne H. Bitubekk
1
rmdires ahora rd
RaisingAgent
@RaisingAgent gracias por los headups, actualicé el fragmento de código con rd en lugar de rmdir
Arne H. Bitubekk
21

Lo que funcionó para mí fue una versión simplificada de esta sugerencia :

  1. Cambie el nombre de la Windowscarpeta aWindows.old
  2. Ejecute la limpieza del disco desde el menú Inicio
  3. Seleccione la unidad que contiene la Windows.oldcarpeta
  4. "Instalación (es) anterior (es) de Windows" y luego haga clic en Aceptar
x29a
fuente
Esto funcionó para la carpeta "Windows". Los 3 comandos de Arne HD funcionaron para algunas otras carpetas como "Archivos de programa" y ProgramData.
gus
¡Inteligente! Y extremadamente simple. Trabajado como un encanto.
oneavi
1
Funciona con cualquier carpeta si cambia el nombre a Windows.old. Increíble.
AdnanG
Este es el mejor método, probé 3 de los métodos descritos aquí y este fue el mejor.
Radio
3

Esto funcionó en Windows 10 ESPAÑOL:

set del_folder=F:\Program Files
takeown /f "%del_folder%" /r /d S
icacls "%del_folder%" /grant administradores:F /T
rmdir /s /q "%del_folder%"

En el takeowncomando, debe usar una "S" al final para "Sí" en español, en lugar de "Y" para "Sí" (inglés).

Para el icaclscomando, debe usar "administradores" (español) y no "administradores" (inglés).

Juanga Covas
fuente
1

Cambie el nombre de los archivos de programa a Windows.old y ejecute el disco limpio para borrar los archivos del sistema. El mismo truco funciona en cualquier carpeta que no puedes eliminar.

Flegy
fuente
1

NOTA: Ahora que lo pienso, debería poder comenzar desde el paso 4, solo necesita presionar el botón "cambiar permisos" para obtener acceso. Lo probaría, pero no tengo directorios para eliminar.

En Windows 10 (probablemente también funciona con Windows 7 y 8):

  1. Haga clic derecho en la carpeta-> propiedades-> seguridad-> avanzado.
  2. Haga clic en Cambiar junto al propietario (en la parte superior). Ingrese su nombre de usuario en el cuadro y presione los nombres de verificación. (Debería convertirse al estilo MACHINENAME \ USERNAME).
  3. Presione OK, OK, OK para salir de las opciones de seguridad.

Ahora debe ser dueño del directorio.

  1. Haga clic derecho en la carpeta-> propiedades-> seguridad-> avanzado. (De nuevo.)
  2. Busque "Usuarios" en la lista de permisos. Haga clic en él, seleccione editar y elija control total.
  3. En la parte inferior, marque "Reemplazar todas las entradas de permisos secundarios ...".
  4. Presione OK, luego elija Sí en el cuadro de advertencia. Espere a que la computadora aplique los nuevos permisos.

Ahora debería tener los permisos necesarios para eliminar los archivos. Hazlo (Probado tanto en las carpetas de Archivos de programa como en Windows.old).

usuario3757614
fuente
Probado, funciona! ¡Gracias!
Ir al
0

(Para la carpeta de Windows) Si puede, cambie el nombre a windows.old. Luego abra la limpieza del disco, seleccione la unidad y haga clic en Aceptar. Después de eso, haga clic en 'limpiar archivos del sistema' y eliminará la carpeta

Ahora, si no puede cambiar el nombre de la carpeta, descargue el desbloqueador, ábralo y seleccione la carpeta, luego haga clic en cambiar nombre y cambie el nombre a Windows.old y luego ejecute la limpieza del disco. :RE

Madhav Biju
fuente
-2

Cree un USB en vivo de su distribución Linux elegida, inicie en eso, monte las unidades y límpielas de esa manera. Literalmente, la forma más fácil de hacerlo.

Steven Perszyk
fuente
1
Creo que la pregunta es más acerca de los permisos / propiedad de archivos que solo la eliminación de archivos. Si existe la posibilidad de realizar una tarea utilizando las herramientas de Windows, ¿por qué alguien debería descargar 500 MB y más y crear un USB de arranque? Tampoco estoy 100% seguro de que cada distribución de Linux "elegida" pueda manejar correctamente todas las versiones de NTFS. NTFS no es un sistema de archivos Linux. ¿Usaría Windows para manipular archivos en el sistema de archivos ext4 de Linux?
snayob
El kernel de Linux puede manejar más de 50 sistemas de archivos. Además, es literalmente la forma MÁS FÁCIL de hacerlo. Tal vez no sea lo que este usuario estaba buscando, pero es fácil.
Steven Perszyk
1
Más fácil? ¿Descargar 1GB y grabar en USB? ¿Es esto realmente más fácil que emitir 3 comandos? Parece que eres un verdadero gurú de Linux;)
snayob
1
No estoy muy seguro de cómo ese "hecho" aleatorio y completamente falso se refiere a la discusión en cuestión, pero gracias por iluminarme. Si desea tener una discusión personal sobre por qué uno elegiría un sistema GNU / Linux, me encantaría tener esa discusión en otro lugar. Aparte de eso, esta discusión se está saliendo del tema terriblemente
Steven Perszyk
1
No tiene interés en discutir "La forma MÁS FÁCIL de hacerlo". Su declaración está GRITANDO un hecho completamente falso.
snayob
-2

Es posible que ya tenga la propiedad del mismo usuario, debido a que es un disco anterior que alojaba su sistema. Elimine esa propiedad y agréguela nuevamente (la misma). Por ejemplo, si el usuario PETER tiene la propiedad, elimínela, aplique a todas las subcarpetas, luego agregue PETER nuevamente y aplique. Debería poder cambiar el nombre de la carpeta que desea eliminar y luego eliminarla.

Salud

Guylee
fuente
Suposición sin educación. El sistema de archivos NTFS usa SID de cuenta de usuario junto con listas de control de acceso, no los nombres para mostrar de la cuenta de usuario.
-2

Suponiendo que la eliminación debe realizarse en una segunda unidad: lo que me ha funcionado es:

  1. instale Lockhunter (aplicación gratuita para desbloquear y renombrar archivos bloqueados) ejecute Lockhunter con privilegios de administrador;

  2. cambie el nombre de la carpeta para eliminar a "Windows.old" (aún leerá el nombre original después del cambio de nombre, pero no se preocupe, Lockhunter lo confirmará en su ventana principal);

  3. ejecute "Disk Cleanup" con privilegios administrativos;

  4. seleccione la carpeta para eliminar que aparecerá con el nombre "Windows.old" en Liberador de espacio en disco y elimínela.

usuario221120
fuente