PowerShell kullanarak SharePoint Belge Kitaplığındaki Tüm Dosyaları İndirin
Gereksinim: SharePoint belge kitaplığındaki tüm dosyaları indirin.
Bir belge kitaplığından tüm dosyalar nasıl indirilir?
SharePoint belge kitaplığı, bir proje veya ekiple ilgili tüm dosyaların depolanıp erişilebildiği merkezi bir konumdur. Çoğu zaman, kullanıcıların bir SharePoint belge kitaplığındaki tüm dosyaları yedekleme veya analiz amacıyla yerel sistemlerine indirmeleri gerekebilir. SharePoint tek tek dosyaları indirme seçeneği sunsa da tüm dosyaları tek tek indirmek zaman alabilir. Neyse ki PowerShell, bir SharePoint belge kitaplığındaki tüm dosyaları yalnızca birkaç satır kodla indirmek için kullanılabilir.
SharePoint belge kitaplığındaki tüm dosyaları indirmek için şu adımları uygulayabilirsiniz:
- Tüm dosyaları indirmek istediğiniz belge kitaplığını SharePoint'te açın.
- Kütüphanedeki tüm dosyaları seçmek için en soldaki sütunun başlığındaki onay kutusuna tıklayın. Kitaplıkta birden fazla dosya sayfası varsa, tüm dosyaları seçmek için bu adımı her sayfada tekrarlamanız gerekebilir.
- Sayfanın üst kısmındaki araç çubuğundaki “İndir” düğmesine tıklayın.
Bu, seçilen tüm dosya ve klasörleri Belge Kitaplığı'ndan indirir. Belge kitaplığını Windows Dosya araştırmasında açmak ve dosyaları yerel diskinize kopyalayıp yapıştırmak için “Gezginde Aç” seçeneğini de kullanabilirsiniz.
PowerShell kullanarak Kitaplıktaki Tüm Belgeleri İndirin:
SharePoint belge kitaplığından tüm dosyaları hızlı bir şekilde indirmek mi istiyorsunuz? Belgeleri arşivlemeniz gerekiyorsa veya yalnızca kitaplıktaki her şeyin yerel bir kopyasını istiyorsanız, bu kılavuz size PowerShell kullanarak belge kitaplığından tüm belgeleri nasıl indireceğinizi gösterecektir.
İşte bir belge kitaplığındaki tüm dosyaları indirmek için PowerShell.
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
Tüm Belge Kitaplıklarını bir SharePoint Sitesinden İndirin:
Tüm belge kitaplıklarındaki tüm dosyaları bir SharePoint sitesinden indirmeye ne dersiniz?
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
SharePoint Online belge kitaplığından tüm dosyaları indirmek için şunu kullanın: Belge kitaplığını indirmek için SharePoint Online PowerShell
