Recientemente tuvimos un problema de ordenadores sin espacio en disco.
Estos ordenadores eran usados por muchos usuarios diferentes y descubrimos que la carpeta de perfil de cada usuario ocupaba 4 GBs. Multiplicado por más de 30 usuarios que podían usar el equipo, teníamos más de 120 GBs usados en discos de sólo 240 Gbs de capacidad.
Revisando los perfiles encontramos que cada uno tenía en descargas una carpeta con el instalador de un programa de 3 GBs. Probamos a acceder con un nuevo usuario y ahí estaba también el archivo.
Resultó que en la carpeta c:\users\default\downloads estaba este archivo. Esta carpeta es el perfil que se copia a los nuevos usuarios que inician sesión. Borrando el archivo aquí, ya no se copiaría a los nuevos usuarios, pero ahora nos quedaba borrarlo de los usuarios que ya estaban creados.
Borrado recursivo desde CMD
Pensamos que sería tan sencillo como usar del c:\users\*\downloads\programa\ pero no funciona. La manera de borrar carpetas recursivamente es con un bucle FOR. Ejecutar como administrador:
@echo off
echo borrando archivos
cd /d c:\users
for /f %%i in ('dir /a:d /s /b programa') do rd /s /q %%i
pauseEn los script las variables se nombran con doble %%. Si ejecutamos directamente desde línea de comandos llevarían solo un %.
El /d de cd es para que cambie la unidad, porque si ejecutas el script desde otra que no es c: no funciona.
Borrado recursivo desde PowerShell
Ejecutar como administrador
Remove-Item -Path "C:\Users\*\programa" -Recurse -Force -ErrorAction SilentlyContinue
Deja una respuesta