"Ruta demasiado larga": Solución con GPO

Todo administrador de sistemas se ha encontrado en alguna ocasión con el siguiente problema:

Al intentar crear o eliminar o incluso leer una estructura de directorios de más allá de 256 caracteres aparece uno de los siguientes errores:

No se puede tener acceso a esta carpeta.

Ruta de acceso es demasiado larga.

No se puede crear la carpeta XXXX

El nombre de archivo o la extensión es demasiado largo.

En inglés: "file name too long" o bien "path too long".

Una vez nos encontramos con el error, si lo que queremos es eliminar la estructura, podemos utilizar, por ejemplo la siguiente técnica:

Pero de hecho el problema de "Ruta de acceso es demasiado larga" y los 256 caracteres no ocurre debido a una limitación en el sistema de ficheros NTFS o exFAT.

Los sistemas de ficheros NTFS o exFAT no tienen la limitación de los 256 caracteres.

El problema reside en la API de Windows y la variable MAX_PATH definida a 260 caracteres como máximo.

El valor de MAX_PATH no se puede cambiar.

Si para administrar la estructura (crear, eliminar, leer) la herramienta en cuestión utiliza la API (application programming interface) de Windows con la variable MAX_PATH tendremos el problema, por ejemplo, utilizando el Explorador de Windows.

Con Windows 10 a partir de los parches publicados en agosto de 2016 (Anniversary Update) o en Windows Server 2016 RTM se incorpora lo que podría resultar la solución definitiva del problema: Aplicar una directiva de grupo (GPO) de equipo.

Esta GPO de equipo la podremos encontrar como GPO local (gpedit.msc) o como GPO de dominio (gpmc.msc).

Ubicación de la GPO en inglés:

Policies > Computer Configuration > Administrative Templates > System > FileSystem > Enable Win32 long paths

GPO: Solución: "ruta demasiado larga"

Ubicación de la GPO en castellano:

Politicas > Configuración de equipo > Plantillas administrativas > Sistema > Sistema de ficheros > Habilitar rutas de acceso Win32 largas  

Especial atención con esta GPO porque si la activamos: La configuración queda guardada fuera de la zona del registro dedicada a las políticas.

Esto significa que la administración de la política deberá realizarse como si se tratase de una preferencia, por lo tanto, una vez activada y aplicada la política, para deshacer los cambios, será necesario realizar una GPO contradictoria.


En este post, también podemos ver cómo listar cuales son las rutas largas a partir de cierta ruta:

Windows: Listar rutas largas (SYSADMIT.com)

14 comentarios:

  1. Que buena noticia!! Yo este problema siempre me lo he encontrado tarde, al querer restaurar de copias o al querer copiar una carpeta a otro servidor
    Gracias por la info Xavi

    ResponderEliminar
  2. Ninguno de los 2 me aparece en windows 10 aniversary.. aún así me sigue apareciendo el error de caracteres

    ResponderEliminar
    Respuestas
    1. Debería de aparecerte la GPO a partir de Windows 10 Aniversary Update o bien con Windows Server 2016.

      Eliminar
  3. Buenas tardes,
    Para el caso de sistemas con Windows Server 2008 R2 y Windows 7 Professional hay alguna solución?
    Muchas gracias por la atención prestada!

    ResponderEliminar
    Respuestas
    1. Hola Cesar,

      Desgraciadamente no es posible prevenir el error en Windows Server 2008 R2 y Windows 7, sin embargo, si te encuentras con el problema, lo podrás corregir utilizando robocopy.

      A partir de Windows Server 2008 y Windows Vista, la herramienta de linea de comandos robocopy está integrada en el sistema operativo.

      Con robocopy podrás hacer copia de rutas con el problema y también podrás eliminar estructuras de directorios con el problema.

      En este mismo post, encontrarás un ejemplo de su funcionamiento: "Windows: Borrar rutas largas (SYSADMIT.com)"

      ¡Un saludo!

      Xavi.

      Eliminar
    2. Gracias tenía ese problema y no sabía como solucinarlo

      Eliminar
    3. De nada. Me alegro que te haya funcionado.

      Un saludo,

      Xavi.

      Eliminar
  4. Respuestas
    1. Yeah right.

      This GPO is also available in the latest versions of Windows 10 and Windows Server 2019.

      Greetings,

      Xavi.

      Eliminar
  5. Buenas tardes, hay alguna solución que se pueda dar en Windows Server 2012 R2?

    ResponderEliminar
    Respuestas
    1. Hola,

      Con Windows Server 2012 R2, para evitar el problema no hay solución.

      Si lo que quieres es copiar los ficheros con rutas largas a otra ubicación, puedes utilizar la herramienta robocopy.

      Un saludo,

      Xavi.

      Eliminar
  6. con ws201 r2 no puedo terminar de borrar las carpetas. hay alguna solucion?

    ResponderEliminar
    Respuestas
    1. Hola,

      Si no puedes borrar carpetas o ficheros debido a que la ruta es demasiado larga, puedes probar el siguiente método:

      https://www.sysadmit.com/2015/08/windows-borrar-rutas-largas.html

      Un saludo,

      Xavi.

      Eliminar