System Administration 5 min de lectura 18 de marzo de 2026

Cómo mover carpetas de usuario en Windows con PowerShell y Robocopy

Automatiza la redirección de carpetas de usuario a una unidad secundaria usando PowerShell, Robocopy y el Registro de Windows sin romper el perfil.

Solución en "Dos Clics" (TL;DR)

Guía para automatizar el cambio de ubicación de carpetas de usuario en Windows usando PowerShell, Robocopy y el Registro.

Al desplegar o formatear equipos en entornos de trabajo, una práctica estándar de administración es particionar el almacenamiento: asignar la unidad C: exclusivamente al sistema operativo y reservar la unidad D: para los datos del usuario. Sin embargo, redirigir manualmente carpetas como Documentos, Escritorio o Descargas desde la interfaz gráfica deja de ser viable cuando debes configurar decenas de puestos.

1. El problema de los archivos desktop.ini y las rutas con espacios

Cuando realizamos respaldos o copias de perfiles de usuario, Windows suele transferir metadatos y archivos ocultos de configuración. El principal responsable de que una carpeta común adopte la identidad de una carpeta del sistema es el archivo desktop.ini, combinado con atributos especiales de carpeta.

Al intentar automatizar la limpieza de estos archivos mediante la consola de comandos tradicional (CMD), es muy común toparse con errores de sintaxis al iterar los directorios:

Símbolo del sistema (CMD) - Error de iteración
for %i in (dir /a b /s /b desktop.ini) do echo %i

En este primer intento, la instrucción no ejecuta el comando dir; en su lugar, el bucle for interpreta cada palabra separada por espacios (dir, /a, b, /s, desktop.ini) como cadenas de texto independientes.

Para que la consola ejecute el comando y procese su salida, se debe utilizar la sintaxis con el modificador /f y comillas simples. Sin embargo, surge de inmediato un segundo problema clásico de CMD: la separación por espacios en blanco.

Error detectado: Rutas como C:\Users\Usuario\3D Objects\desktop.ini o Pictures\Camera Roll se truncan en el primer espacio (procesando únicamente C:\Users\Usuario\3D), lo que provoca fallos inmediatos al intentar ejecutar del sobre rutas inexistentes.

La sintaxis correcta para procesar rutas completas

Para indicarle a CMD que no divida las líneas por espacios, es obligatorio definir delims= y encerrar las variables entre comillas dobles:

Símbolo del sistema (CMD)
for /f "delims=" %i in ('dir /a /s /b desktop.ini') do del /f /q "%i"
Consejo Práctico: Una alternativa nativa mucho más limpia en CMD para recorrer directorios de forma recursiva sin invocar subprocesos de dir es usar el modificador /r: for /r %i in (desktop.ini) do del /f /q "%i".

2. Sanitizar directorios: quitar atributos del sistema

Eliminar el archivo desktop.ini no siempre es suficiente si la carpeta conserva atributos de solo lectura o de sistema asignados previamente por Windows. Si una carpeta llamada Documents retiene estos atributos, el Explorador de archivos puede seguir tratándola como una Known Folder y mostrar iconos especiales de manera no deseada.

Para normalizar cualquier directorio respaldado, se deben despojar estos atributos en bloque:

Símbolo del sistema (CMD)
attrib -s -h -r /s /d

Los modificadores eliminan los atributos de sistema (-s), oculto (-h) y solo lectura (-r) de forma recursiva tanto en archivos (/s) como en carpetas (/d).

3. Redirección de carpetas de usuario a una unidad secundaria

Copiar simplemente el contenido de C:\Users\Usuario a D:\Users\Usuario no redirige la sesión de Windows. El sistema operativo mantiene un registro estricto de las rutas conocidas en el Registro de Windows (HKCU). Si solo se copian los archivos, el Explorador seguirá apuntando a la unidad C:.

Alcance: ¿Qué carpetas se deben mover?

Para evitar corrupción en el perfil del usuario o problemas de compatibilidad con aplicaciones, únicamente se deben mover las carpetas personales estándar:

  • Desktop (Escritorio)
  • Documents (Documentos)
  • Downloads (Descargas)
  • Pictures (Imágenes)
  • Music (Música)
  • Videos (Vídeos)
Precaución de arquitectura: Nunca muevas directorios como AppData, .ssh, ni perfiles globales del sistema (C:\Users\Default, C:\Users\Public). Estas rutas contienen enlaces simbólicos, puntos de unión (junction points) y configuraciones críticas de bajo nivel que deben permanecer en la unidad raíz.

4. Automatización del proceso con PowerShell y Robocopy

El siguiente script automatiza la creación de la estructura en la unidad D:, la copia íntegra de los archivos manteniendo permisos y atributos mediante Robocopy, y la actualización de las claves correspondientes en el Registro de Windows.

PowerShell
# Obtener el usuario de la sesión actual
$User = $env:USERNAME
$OldPath = "C:\Users\$User"
$NewPath = "D:\Users\$User"

# Crear la raíz del perfil en el disco secundario
New-Item -ItemType Directory -Force -Path $NewPath | Out-Null

# Lista controlada de carpetas especiales a mover
$Folders = @("Desktop", "Documents", "Downloads", "Pictures", "Music", "Videos")
$RegPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"

foreach ($f in $Folders) {
    $SourceFolder = Join-Path $OldPath $f
    $DestFolder = Join-Path $NewPath $f

    if (Test-Path $SourceFolder) {
        # Crear carpeta de destino
        New-Item -ItemType Directory -Force -Path $DestFolder | Out-Null

        # Copia espejo preservando atributos y omitiendo junction points
        robocopy $SourceFolder $DestFolder /MIR /COPYALL /XJ /R:1 /W:1

        # Actualizar la ruta en el registro de Windows
        Set-ItemProperty -Path $RegPath -Name $f -Value $DestFolder
    }
}

Write-Host "Redirección completada. Es necesario cerrar sesión o reiniciar el equipo." -ForegroundColor Green

Parámetros clave utilizados en Robocopy

  • /MIR: Espeja la estructura de directorios (equivalente a /E más /PURGE).
  • /COPYALL: Copia toda la información del archivo (datos, atributos, marcas de tiempo, listas de control de acceso NTFS, información del propietario y auditoría).
  • /XJ: Excluye puntos de unión (junction points), evitando bucles infinitos en el sistema de archivos.
  • /R:1 /W:1: Limita los reintentos a 1 segundo de espera, evitando bloqueos prolongados con archivos en uso.
La historia detrás de la nota

Configurar la redirección de carpetas de forma manual mediante clic derecho en las propiedades de cada directorio funciona en un par de equipos, pero en despliegues corporativos o mantenimientos recurrentes, apoyarse en Robocopy y PowerShell garantiza consistencia y ahorra horas de trabajo repetitivo.