Copiar carpetas de SharePoint a una unidad de red: guía completa, opciones y automatización

¿Necesitas llevar carpetas de una biblioteca de SharePoint a una unidad de red (UNC) en tu organización? Aquí tienes una guía completa y práctica con métodos paso a paso, desde una descarga puntual hasta flujos automatizados con Power Automate o scripts en PowerShell, incluyendo consejos de rendimiento y resolución de problemas.

Índice

Resumen de la pregunta

El escenario típico: las personas pueden subir contenido desde su PC a SharePoint con Arrastrar y soltar o Upload, pero luego no encuentran una forma igual de directa para mover carpetas completas desde SharePoint hacia una unidad de red tradicional (por ejemplo, \\servidor\departamento).

Respuesta corta

De forma nativa, la opción Copiar de SharePoint Online sólo permite copiar entre sitios/bibliotecas de SharePoint y OneDrive. No existe una acción web “SharePoint → unidad de red” que copie carpetas directamente.

La ruta recomendada es intermedia: descargar o sincronizar primero el contenido en local y, desde ahí, moverlo a la unidad de red. Para escenarios masivos o periódicos, usa scripts o Power Automate con el conector File System y gateway local.

Métodos recomendados

Descarga directa (uso ocasional)

  1. En la biblioteca de SharePoint, selecciona la carpeta que necesitas.
  2. Pulsa Download. Se descargará como un archivo .zip.
  3. Extrae el .zip en tu PC.
  4. Desde el Explorador de archivos, copia/pega la carpeta extraída a la unidad de red.

Cuándo usarlo: volúmenes pequeños o tareas puntuales. Es el método más simple y sin requisitos adicionales.

Sincronización con OneDrive (recurrente o con volumen)

  1. En la biblioteca de SharePoint, pulsa Sync para crear la carpeta sincronizada en el Explorador de archivos (requiere OneDrive para la empresa).
  2. Verás la biblioteca en tu PC como una ubicación local sincronizada.
  3. Importante: si usas “Archivos a petición”, marca las carpetas como Mantener siempre en este dispositivo para que estén descargadas físicamente y evitar copias de “marcadores” vacíos.
  4. Desde esa ubicación local sincronizada, copia las carpetas hacia la unidad de red. Si el volumen es grande o necesitas reintentos, considera usar Robocopy.

Ventajas: más resiliente que la descarga manual, válido para cargas medianas o repetidas, y permite reintentos con utilidades del sistema.

Automatización (masivo / periodicidad)

Cuando el tamaño y/o la frecuencia justifican automatización, elige entre scripts y flujos:

Scripts con PowerShell (PnP/Graph)

  • Conéctate al sitio y biblioteca de SharePoint.
  • Descarga carpetas en lote a un directorio temporal local.
  • Copia los archivos a la unidad de red con control de errores, reintentos y registros.
  • Programa la ejecución con el Programador de tareas de Windows.

Power Automate con File System + Gateway

  • Define un disparador (por ejemplo, Recurrence o “Cuando se cree o modifique un archivo en SharePoint”).
  • Mediante el conector SharePoint, lee los archivos/carpetas.
  • Usa el conector File System (requiere gateway local) para Create file en la ruta UNC de la unidad de red.
  • Controla excepciones, duplicados y renombrados según tus reglas.

Comparativa de métodos

MétodoEscenario idealVolumenResilienciaRequisitosRiesgos / Precauciones
Descarga directaCopias puntuales, pruebas, entregas rápidasBajoBásicaNingunoZip grande, descompresión, posible corte si falla la red
OneDrive SyncCopias recurrentes, medianas/grandes, trabajo asistidoMedio–AltoMedia–Alta con RobocopyCliente OneDrive y acceso a la bibliotecaAsegurar “Mantener siempre en este dispositivo”; cuidado con rutas largas
PowerShellJobs programados, lotes masivos, control finoAltoAlta (reintentos, logs, control de errores)Módulos PowerShell, credenciales, permisosDiseño y mantenimiento de scripts; gobernanza
Power AutomateIntegraciones sin código, flujos periódicosMedio–AltoAltaLicencias, conector File System, gatewayCuotas de ejecución, manejo de renombrados, limitaciones de conectores

Guía rápida de Robocopy

Para copias grandes desde la carpeta sincronizada en local hacia la unidad de red, Robocopy ofrece velocidad y resistencia. Ejemplos:

REM Copia robusta con reintentos y multihilo
robocopy "C:\Sync\Biblioteca" "\\Servidor\Recurso\Destino" /E /Z /ZB /R:3 /W:5 /MT:16 /COPY:DAT /DCOPY:DAT /NFL /NDL /NP /TEE /LOG:"C:\Logs\robocopy_%DATE:~-4,4%%DATE:~-7,2%%DATE:~-10,2%.log"

Parámetros útiles

ParámetroFunción
/ECopia subcarpetas incluyendo vacías.
/Z y /ZBModo reiniciable; /ZB usa backup mode si hay acceso.
/R:n y /W:nReintentos y espera entre reintentos.
/MT:nMultihilo (por ejemplo, 16 hilos para equilibrio).
/COPY:DATConserva datos, atributos y marcas de tiempo.
/DCOPY:DATConserva atributos y marcas de tiempo de directorios.
/MIRRefleja (incluye borrados). Úsalo con extremo cuidado.
/NFL /NDL /NPReduce ruido en el log y la consola.
/TEE /LOG:pathMuestra en pantalla y escribe a archivo de registro.

Consejo: si usas Files On-Demand, fuerza la descarga previa marcando la raíz como “Mantener siempre en este dispositivo” antes de lanzar Robocopy, para evitar copiar marcadores en vez de archivos.

Script base con PnP.PowerShell

Un esqueleto sencillo para descargar una carpeta de una biblioteca de SharePoint a un directorio local y luego copiar a la red. Adáptalo a tu estructura y seguridad.

# Requisitos:
- Módulo PnP.PowerShell
- Permisos para acceder al sitio/biblioteca
- Ruta UNC accesible desde el equipo que ejecuta el script

param(
\[Parameter(Mandatory=\$true)] \[string]\$SiteUrl,
\[Parameter(Mandatory=\$true)] \[string]\$LibraryRelativeUrl, # p. ej. "/sites/Proyecto/Shared Documents/CarpetaX"
\[Parameter(Mandatory=\$true)] \[string]\$LocalDownloadPath,   # p. ej. "C:\Descargas\CarpetaX"
\[Parameter(Mandatory=\$true)] \[string]\$NetworkPath          # p. ej. "\Servidor\Recurso\CarpetaX"
)

\$ErrorActionPreference = "Stop"

1) Conexión interactiva (o por app si tu gobierno TI lo exige)

Connect-PnPOnline -Url \$SiteUrl -Interactive

2) Crear carpeta local si no existe

if (!(Test-Path -LiteralPath \$LocalDownloadPath)) {
New-Item -ItemType Directory -Path \$LocalDownloadPath | Out-Null
}

3) Descarga recursiva desde SharePoint

Write-Host "Descargando desde SharePoint..."
Get-PnPFolderItem -FolderSiteRelativeUrl \$LibraryRelativeUrl -ItemType File -Recursive | ForEach-Object {
\$serverRelUrl = $\_.ServerRelativeUrl
\$relPath = \$serverRelUrl.Replace(\$LibraryRelativeUrl,"").TrimStart("/")
\$destFile = Join-Path \$LocalDownloadPath \$relPath```
$destDir = Split-Path $destFile -Parent
if (!(Test-Path -LiteralPath $destDir)) { New-Item -ItemType Directory -Path $destDir | Out-Null }

Get-PnPFile -Url $serverRelUrl -Path $destDir -FileName $_.Name -AsFile -Force
```
}

4) Copia a la unidad de red (Robocopy recomendado)

Write-Host "Copiando a unidad de red..."
\$log = Join-Path \$env\:TEMP ("robocopy\" + (Get-Date -Format "yyyyMMdd\HHmmss") + ".log")
\$cmd = 'robocopy "{0}" "{1}" /E /Z /R:3 /W:5 /COPY\:DAT /DCOPY\:DAT /NFL /NDL /NP /TEE /LOG:"{2}"' -f \$LocalDownloadPath, \$NetworkPath, \$log
cmd.exe /c \$cmd

Write-Host "Proceso completado. Log: \$log" 

Notas del script: este patrón separa descarga y copia a la red para tener control y trazabilidad. Ajusta límites de reintentos, manejo de excepciones y registro según tu entorno.

Power Automate con conector File System y gateway

Para automatizar sin (o con mínimo) código:

  1. Instala y registra un on-premises data gateway en un servidor con acceso al recurso compartido.
  2. En Power Automate, crea un flujo:
    • Disparador Recurrence (programado) o “Cuando se crea/modifica un archivo” en SharePoint.
    • Acción Get files (properties only) y/o Get file content de SharePoint para enumerar el contenido.
    • Acción Create file del conector File System, apuntando a la ruta UNC (por ejemplo, \\Servidor\Recurso\Destino\{NombreCarpeta}) a través del gateway.
    • Opcionalmente, Condition para evitar duplicados o para sobrescritura controlada.
    • Registros con Compose o Append to array variable y envío de alertas por correo en caso de error.
  3. Prueba con una carpeta pequeña, valida formatos y permisos, y luego escala el volumen.

Buenas prácticas en flujos: usa páginas para paginación si la biblioteca es muy grande, gestiona reintentos en acciones críticas y define idempotencia (por ejemplo, por nombre+hash o por ETag) si te preocupa la duplicidad.

Consideraciones importantes

  • Metadatos y versiones: al pasar a NTFS sólo viaja el archivo actual. Los metadatos (columnas de SharePoint) y el versionado no se conservan. Exporta metadatos aparte (CSV) o incrústalos en nombres/campos si son imprescindibles.
  • Límites de nombres/rutas: evita caracteres no permitidos (\ / : * ? " < > |) y controla la longitud de ruta. Si tu entorno permite rutas largas, actívalo de forma consistente y valida con pruebas.
  • Tamaño/volumen: para carpetas muy grandes, trabaja por lotes o con herramientas resilientes (Robocopy con reintentos). Planifica ventanas de copia para minimizar impacto.
  • Permisos: los permisos de SharePoint no se trasladan. En la unidad de red tendrás que configurarlos con ACLs del recurso compartido y NTFS.
  • Bloqueos y checkout: si una biblioteca exige desprotección o hay archivos bloqueados, resuélvelo antes de descargar.
  • Retención y cumplimiento: si existen etiquetas de retención o auditoría, consulta con TI/Compliance si la copia a red es admisible.
  • Archivos a petición: asegúrate de tener los archivos en local antes de copiar (estado de nube vs. disponible localmente).

Buenas prácticas para minimizar riesgos

  • Haz primero una prueba piloto con una subcarpeta representativa.
  • Conserva un registro de lo copiado (logs de Robocopy o transcript de PowerShell).
  • Evita cambios de estructura durante la copia (congelar cambios o planificar ventanas).
  • Normaliza nombres (sin caracteres prohibidos; evita espacios dobles y puntos finales).
  • Valida integridad con hashes al muestrear: Get-FileHash antes/después.
  • Documenta permisos esperados en la unidad de red y aplícalos post-copia.

Checklist previa

  • ¿Qué carpeta(s) exactas vas a copiar? Define alcance y tamaño.
  • ¿Necesitas metadatos/versiones? Plan de exportación.
  • ¿Hay rutas largas o caracteres no válidos? Limpieza previa.
  • ¿Permisos listos en el destino? Asegura ACLs.
  • ¿Ventana de ejecución? ¿Notificar a usuarios?
  • ¿Estrategia de reintentos/logs? ¿Quién monitorea?

Problemas frecuentes y solución

SíntomaCausa probableCómo resolver
Archivos 0 KB en destinoCopias desde placeholders de OneDriveMarca la carpeta como “Mantener siempre en este dispositivo”; verifica estado antes de copiar.
Interrupciones por red inestableTransferencia sin reintentosUsa Robocopy con /Z /R:3 /W:5 /MT o scripts con reintentos.
Errores por nombres/rutasCaracteres prohibidos o exceso de longitudNormaliza nombres y habilita rutas largas en sistemas compatibles. Reestructura en origen si es necesario.
Archivos bloqueadosCheck-out obligatorio o bloqueo por usuario/procesoDesprotege/Libera archivos antes de intentar la copia masiva.
Pérdida de metadatosTrasladas a NTFSExporta metadatos a CSV o embebe claves en nombres/campos antes de mover.
Lentitud excesivaCopias seriales, latencia altaActiva multihilo en Robocopy, ejecuta cerca del destino, planifica fuera del horario pico.
Duplicados o sobrescriturasFalta de política de colisiónDefine si se sobrescribe, renombra o salta. En flujos, añade condiciones por nombre+fecha o hash.

Ruta de decisión práctica

  • Una vez y poco volumen: Descarga directa.
  • Repetitivo/volumen medio: Sincronización con OneDrive + Robocopy.
  • Masivo o programado: Script PowerShell o Power Automate con File System.

¿Y mapear SharePoint como unidad de red?

Existe la posibilidad histórica de mapear una biblioteca de SharePoint como unidad de red vía WebDAV, pero suele ser frágil y sensible a autenticación moderna, actualizaciones y latencia. No es la vía recomendada para copias robustas o sostenidas. Si lo intentas, úsalo solo como apoyo puntual y valida rendimiento.

Exportar metadatos si los necesitas

Antes de mover a la red, identifica columnas críticas (por ejemplo, “Cliente”, “Proyecto”, “Estado”) y expórtalas junto con las rutas de los archivos a un CSV. Puedes realizarlo desde la vista de la biblioteca o con PowerShell:

# Ejemplo simple con PnP para exportar metadatos de una lista/biblioteca
Connect-PnPOnline -Url "https://tenant.sharepoint.com/sites/Proyecto" -Interactive
$items = Get-PnPListItem -List "Documentos compartidos" -PageSize 2000 -Fields "FileRef","FileLeafRef","Cliente","Proyecto","Estado"
$rows = foreach($i in $items){
    [PSCustomObject]@{
        Ruta    = $i["FileRef"]
        Archivo = $i["FileLeafRef"]
        Cliente = $i["Cliente"]
        Proyecto= $i["Proyecto"]
        Estado  = $i["Estado"]
    }
}
$rows | Export-Csv -Path "C:\Metadatos\documentos.csv" -NoTypeInformation -Encoding UTF8

Conserva ese CSV como “tabla de correspondencia” por si necesitas reconstruir contexto más adelante.

Control de calidad e integridad

  • Tras la copia, ejecuta un muestreo de verificación con Get-FileHash (origen sincronizado vs. destino) para confirmar integridad.
  • Guarda logs (Robocopy/PowerShell) en una ruta conocida, con retención definida.
  • Si replicas múltiples veces, considera usar /MIR únicamente cuando estés seguro de que el destino debe reflejar el origen (incluyendo borrados) y con copia de seguridad previa.

Seguridad y permisos

  • Confirma que estás autorizado para extraer datos de la biblioteca.
  • En la unidad de red, aplica ACLs acordes a los grupos y políticas internas.
  • Evita mover contenido sensible a rutas compartidas de amplio acceso sin controles adicionales (cifrado, etiquetado, etc.).

Conclusión

No hay una copia directa web de SharePoint → unidad de red. La forma práctica es descargar o sincronizar en local y, desde ahí, copiar a la red. Para escenarios repetitivos o de gran escala, sincronización + Robocopy, scripts PowerShell o Power Automate con gateway ofrecen robustez, reintentos, programación y trazabilidad. Planifica metadatos, permisos, límites de nombres/rutas y validación de integridad para garantizar una migración limpia y comprobable.


Índice