¿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.
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)
- En la biblioteca de SharePoint, selecciona la carpeta que necesitas.
- Pulsa Download. Se descargará como un archivo
.zip
. - Extrae el
.zip
en tu PC. - 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)
- En la biblioteca de SharePoint, pulsa Sync para crear la carpeta sincronizada en el Explorador de archivos (requiere OneDrive para la empresa).
- Verás la biblioteca en tu PC como una ubicación local sincronizada.
- 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.
- 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étodo | Escenario ideal | Volumen | Resiliencia | Requisitos | Riesgos / Precauciones |
---|---|---|---|---|---|
Descarga directa | Copias puntuales, pruebas, entregas rápidas | Bajo | Básica | Ninguno | Zip grande, descompresión, posible corte si falla la red |
OneDrive Sync | Copias recurrentes, medianas/grandes, trabajo asistido | Medio–Alto | Media–Alta con Robocopy | Cliente OneDrive y acceso a la biblioteca | Asegurar “Mantener siempre en este dispositivo”; cuidado con rutas largas |
PowerShell | Jobs programados, lotes masivos, control fino | Alto | Alta (reintentos, logs, control de errores) | Módulos PowerShell, credenciales, permisos | Diseño y mantenimiento de scripts; gobernanza |
Power Automate | Integraciones sin código, flujos periódicos | Medio–Alto | Alta | Licencias, conector File System, gateway | Cuotas 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ámetro | Función |
---|---|
/E | Copia subcarpetas incluyendo vacías. |
/Z y /ZB | Modo reiniciable; /ZB usa backup mode si hay acceso. |
/R:n y /W:n | Reintentos y espera entre reintentos. |
/MT:n | Multihilo (por ejemplo, 16 hilos para equilibrio). |
/COPY:DAT | Conserva datos, atributos y marcas de tiempo. |
/DCOPY:DAT | Conserva atributos y marcas de tiempo de directorios. |
/MIR | Refleja (incluye borrados). Úsalo con extremo cuidado. |
/NFL /NDL /NP | Reduce ruido en el log y la consola. |
/TEE /LOG:path | Muestra 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:
- Instala y registra un on-premises data gateway en un servidor con acceso al recurso compartido.
- 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.
- 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íntoma | Causa probable | Cómo resolver |
---|---|---|
Archivos 0 KB en destino | Copias desde placeholders de OneDrive | Marca la carpeta como “Mantener siempre en este dispositivo”; verifica estado antes de copiar. |
Interrupciones por red inestable | Transferencia sin reintentos | Usa Robocopy con /Z /R:3 /W:5 /MT o scripts con reintentos. |
Errores por nombres/rutas | Caracteres prohibidos o exceso de longitud | Normaliza nombres y habilita rutas largas en sistemas compatibles. Reestructura en origen si es necesario. |
Archivos bloqueados | Check-out obligatorio o bloqueo por usuario/proceso | Desprotege/Libera archivos antes de intentar la copia masiva. |
Pérdida de metadatos | Trasladas a NTFS | Exporta metadatos a CSV o embebe claves en nombres/campos antes de mover. |
Lentitud excesiva | Copias seriales, latencia alta | Activa multihilo en Robocopy, ejecuta cerca del destino, planifica fuera del horario pico. |
Duplicados o sobrescrituras | Falta de política de colisión | Define 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.