Descargar todos los archivos en una biblioteca de documentos de SharePoint usando PowerShell
Requisito: Descargar todos los archivos en una biblioteca de documentos de SharePoint.
¿Cómo descargar todos los archivos de una biblioteca de documentos?
Una biblioteca de documentos de SharePoint es una ubicación central donde se pueden almacenar y acceder a todos los archivos relacionados con un proyecto o equipo. A menudo, es posible que los usuarios necesiten descargar todos los archivos de una biblioteca de documentos de SharePoint a su sistema local para realizar copias de seguridad o realizar análisis. Si bien SharePoint ofrece la opción de descargar archivos individuales, descargar todos los archivos uno por uno puede llevar mucho tiempo. Afortunadamente, PowerShell se puede utilizar para descargar todos los archivos de una biblioteca de documentos de SharePoint con sólo unas pocas líneas de código.
Para descargar todos los archivos en una biblioteca de documentos de SharePoint, puede seguir estos pasos:
- Abra la biblioteca de documentos en SharePoint desde la que desea descargar todos los archivos.
- Haga clic en la casilla de verificación en el encabezado de la columna más a la izquierda para seleccionar todos los archivos de la biblioteca. Si hay varias páginas de archivos en la biblioteca, es posible que deba repetir este paso en cada página para seleccionar todos los archivos.
- Haga clic en el botón "Descargar" en la barra de herramientas en la parte superior de la página.
Esto descarga todos los archivos y carpetas seleccionados de la Biblioteca de documentos. También puede utilizar la opción "Abrir en el Explorador" para abrir la biblioteca de documentos en Windows, explorar archivos y copiar y pegar los archivos en su disco local.
Descargar todos los documentos de una biblioteca mediante PowerShell:
¿Quiere descargar rápidamente todos los archivos de una biblioteca de documentos de SharePoint? Ya sea que necesite archivar documentos o simplemente desee una copia local de todo lo que hay en la biblioteca, esta guía le mostrará cómo descargar todos los documentos de una biblioteca de documentos usando PowerShell.
Aquí está el PowerShell para descargar todos los archivos en una biblioteca de documentos.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Function to Download All Files from a SharePoint Folder
Function Download-SPFolder($SPFolderURL, $DownloadPath)
{
Try {
#Get the Source SharePoint Folder
$SPFolder = $web.GetFolder($SPFolderURL)
$DownloadPath = Join-Path $DownloadPath $SPFolder.Name
#Ensure the destination local folder exists!
If (!(Test-Path -path $DownloadPath))
{
#If it doesn't exists, Create
$LocalFolder = New-Item $DownloadPath -type directory
}
#Loop through each file in the folder and download it to Destination
ForEach ($File in $SPFolder.Files)
{
#Download the file
$Data = $File.OpenBinary()
$FilePath= Join-Path $DownloadPath $File.Name
[System.IO.File]::WriteAllBytes($FilePath, $data)
Write-host -f Green "`tDownloaded the File:"$File.ServerRelativeURL
}
#Process the Sub Folders & Recursively call the function
ForEach ($SubFolder in $SPFolder.SubFolders)
{
If($SubFolder.Name -ne "Forms") #Leave "Forms" Folder
{
#Call the function Recursively
Download-SPFolder $SubFolder $DownloadPath
}
}
}
Catch {
Write-host -f Red "Error Downloading Document Library:" $_.Exception.Message
}
}
#Main Function
Function Download-SPDocumentLibrary($SiteURL, $LibraryName, $DownloadPath)
{
Try {
#Get the Web
$Web = Get-SPWeb $SiteURL
#Delete any existing files and folders in the download location
If (Test-Path $DownloadPath) {Get-ChildItem -Path $DownloadPath -Recurse| ForEach-object {Remove-item -Recurse -path $_.FullName }}
#Get the document Library to Download
$Library = $Web.Lists[$LibraryName]
Write-host -f magenta "Downloading Document Library:" $Library.Title
#Call the function to download the document library
Download-SPFolder -SPFolderURL $Library.RootFolder.Url -DownloadPath $DownloadPath
Write-host -f Green "*** Download Completed ***"
}
Catch {
Write-host -f Red "Error Downloading Document Library:" $_.Exception.Message
}
}
#Runtime-Variables
$SiteURL = "https://Intranet.crescent.com/sites/marketing"
$LibraryName ="Shared Documents"
$DownloadPath ="C:\Downloads\SP2010"
#Call the Function to export all document libraries from a site
Download-SPDocumentLibrary $SiteURL $LibraryName $DownloadPath
Descargar todas las bibliotecas de documentos desde un sitio de SharePoint:
¿Qué tal descargar todos los archivos de todas las bibliotecas de documentos desde un sitio de SharePoint?
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Function to Download All Files from a SharePoint Folder
Function Download-SPFolder($SPFolderURL, $LocalFolderPath)
{
Try {
#Get the Source SharePoint Folder
$SPFolder = $global:web.GetFolder($SPFolderURL)
$LocalFolderPath = Join-Path $LocalFolderPath $SPFolder.Name
#Ensure the destination local folder exists!
If (!(Test-Path -path $LocalFolderPath))
{
#If it doesn't exists, Create
$LocalFolder = New-Item $LocalFolderPath -type directory
}
#Loop through each file in the folder and download it to Destination
ForEach ($File in $SPFolder.Files)
{
#Download the file
$Data = $File.OpenBinary()
$FilePath= Join-Path $LocalFolderPath $File.Name
[System.IO.File]::WriteAllBytes($FilePath, $data)
Write-host -f Green "`tDownloaded File:"$File.ServerRelativeURL
}
#Process the Sub Folders & Recursively call the function
ForEach ($SubFolder in $SPFolder.SubFolders)
{
If($SubFolder.Name -ne "Forms") #Leave "Forms" Folder
{
#Call the function Recursively
Download-SPFolder $SubFolder $LocalFolderPath
}
}
}
Catch {
Write-host -f Red "Error Downloading Document Library:" $_.Exception.Message
}
}
#Main Function
Function Export-SPLibraries()
{
Try {
#Get the Source Web
$global:Web = Get-SPWeb $global:SourceSiteURL
#Delete any existing files and folders in the download location
If (Test-Path $global:LocalFolderPath) {Get-ChildItem -Path $global:LocalFolderPath -Recurse| ForEach-object {Remove-item -Recurse -path $_.FullName }}
#Array to Skip System Libraries
$SystemLibraries =@("Pages", "Converted Forms", "Master Page Gallery", "Customized Reports",
"Form Templates", "List Template Gallery", "Theme Gallery", "Reporting Templates",
"Site Collection Documents", "Site Collection Images", "Site Pages", "Solution Gallery",
"Style Library", "Web Part Gallery","Site Assets", "wfpub")
#Get all document libraries - Exclude Hidden and System Libraries
$LibraryCollection = $Web.lists | Where-Object { ($_.BaseType -eq "DocumentLibrary") -and ($_.hidden -eq $false) -and ($SystemLibraries -notcontains $_.Title)}
#Iterate through each list and export
ForEach($Library in $LibraryCollection)
{
Write-host -f magenta "Downloading Document Library:" $Library.Title
#Call the function to download the document library
Download-SPFolder -SPFolderURL $Library.RootFolder.Url -LocalFolderPath $global:LocalFolderPath
}
Write-host "*** Download Completed ***"
}
Catch {
Write-host -f Red "Error Downloading Document Library:" $_.Exception.Message
}
}
#region Runtime-Variables
$Global:SourceSiteURL = "https://SP2010.crescent.com/sites/marketing"
$Global:LocalFolderPath ="C:\Migration\Downloads"
#endregion Runtime-Variables
#Call the Function to download all document libraries from a site
Export-SPLibraries
Para descargar todos los archivos de una biblioteca de documentos de SharePoint Online, use: SharePoint Online PowerShell para descargar una biblioteca de documentos
