Bir SharePoint Sitesinden Tüm Dosyalar Nasıl İndirilir?


Gereksinim: Tüm Dosyaları bir SharePoint Sitesinden İndirin.

SharePoint Sitesindeki Tüm Dosyalar Nasıl İndirilir?

SharePoint'ten tüm dosyaları indirmek, özellikle çok sayıda dosya ve klasörünüz olduğunda göz korkutucu bir görev olabilir. Ancak verileri yedeklemeniz veya başka bir platforma taşımanız gerektiğinde bu gerekli bir iştir. İçlerinde dosyalar bulunan çok sayıda farklı belge kitaplığınız olduğunda, tüm dosyaları kitaplıktan indirmek oldukça zaman alır. Neyse ki bunu yapmanın kolay bir yolu var! Bir sitenin tüm belge kitaplıklarını kolayca nasıl indirebileceğinizi keşfedelim:

Bir SharePoint belge kitaplığından veya klasöründen tüm dosyaları indirmek için “Gezgin Görünümü”nü kullanın.

  1. SharePoint Şirket İçi veya SharePoint Online kitaplığınıza gidin.
  2. SharePoint Online'daki Görünümler Açılır menüsünden "Dosya Gezgini'nde Görüntüle"ye tıklayın. SharePoint Şirket İçi için “Kütüphane” sekmesindeki “Explorer ile Aç” düğmesine tıklayın.
  3. Keşfet görünümünden, herhangi bir liste veya kitaplıktaki tüm belgeleri veya tüm ekleri yerel makinenize indirebilirsiniz.

  4. Artık Explorer görünümünde bir seviye yukarı gidin ve siteye, listeye veya kitaplık nesnelerine doğru yukarı ve aşağı gezinerek kaşif görünümünü kullanarak sitenin veya site koleksiyonunun tamamını indirebilirsiniz.

Oldukça basit, ha! Ancak, SharePoint Online'daki tüm kitaplıklardaki tüm belgeleri manuel olarak indirmek göz korkutucu bir görev olabilir. Çözüm olarak PowerShell bu süreci otomatikleştirmenin etkili bir yoludur. PowerShell kullanarak SharePoint Online'daki tüm belge kitaplıklarındaki tüm belgeleri nasıl indireceğinizi görelim.

Modern kütüphanelerde, bir belge kütüphanesindeki tüm dosyaları indirmek için tüm dosyaları seçip "İndir" düğmesine basabilirsiniz.

SharePoint Şirket İçi/Çevrimiçi sitesinden Tüm Dosyaları İndirmek için PowerShell:

Bir SharePoint sitesinden veya site koleksiyonundan tüm dosyaları indirmek için WebDav yöntemini de kullanabiliriz. Aşağıdaki komut dosyasındaki parametreleri ayarlayın ve çalıştır'a basın. Bu PowerShell betiği, tüm kitaplıklardaki dosyalar ve belge sürümleri dahil olmak üzere tüm dosyaları, belirli sitenin liste öğesi eklerini ve alt sitelerini sağlanan yerel disk yoluna kopyalar. Bir oturum çerezi oluşturmak için SharePoint sunucu sitesinde bir kez oturum açmanız gerekebilir, BTW!


#Configuration Parameters
$DownloadPath= "c:\Downloads\Online"
#$WebDavUrl = "\\intranet.crescent.com\DavWWWRoot\sites\operations"
$webDavUrl = "\\crescent.sharepoint.com@SSL\DavWWWRoot\sites\operations" #SharePoint Online

#Create Local Folder it it doesn't exists
If(!(Test-Path $DownloadPath))
{
      New-Item -ItemType Directory -Force -Path $DownloadPath | Out-Null
}

#Get All files from the Site and download to local folder
Get-ChildItem -Path $webDavUrl -Recurse | ForEach-Object {
    #Frame the destination path
    $DestinationPath = Join-Path -Path $DownloadPath -ChildPath (Split-Path $_.FullName -NoQualifier).Replace($webDavUrl,'');

    #Copy File to local path
    Copy-Item $_.FullName -Destination $DestinationPath -Force

    Write-host -f Green File Copied to $DestinationPath
}

Bu yöntem hem şirket içi SharePoint'te hem de SharePoint Online'da çalışır.

PnP PowerShell, Tüm Belge Kitaplıklarını SharePoint Çevrimiçi Sitesinden İndirecek

Yedekleme, geçiş veya arşivleme amacıyla tüm belgeleri SharePoint Online'dan indirmeniz gerekiyorsa, bunu manuel olarak yapmak sıkıcı bir iş olabilir. İşte bunu otomatikleştirmek için PowerShell betiği:


#Function to download a library from SharePoint Online
Function Download-PnPLibrary
{
    [cmdletbinding()]
    param
    (
        [Parameter(Mandatory=$true)][Microsoft.SharePoint.Client.List]$List,
        [Parameter(Mandatory=$true)][string]$DownloadPath
    )
    Try {
        Write-host -f Yellow "Downloading Document Library:"$List.Title
        #Create a Local Folder for the Document Library, if it doesn't exist
        $LibraryFolder = $DownloadPath +"\" +$List.RootFolder.Name
        If (!(Test-Path -Path $LibraryFolder)) {
                New-Item -ItemType Directory -Path $LibraryFolder | Out-Null
        }

        #Get all Items from the Library - with progress bar
        $global:counter = 0
        $ListItems = Get-PnPListItem -List $List -PageSize 500 -Fields ID -ScriptBlock { Param($items) $global:counter += $items.Count; Write-Progress -PercentComplete `
                    ($global:Counter / ($List.ItemCount) * 100) -Activity "Getting Items from Library:" -Status "Processing Items $global:Counter to $($List.ItemCount)";} 
        Write-Progress -Activity "Completed Retrieving Items from Library $($List.Title)" -Completed

        #Get all Subfolders of the library
        $SubFolders = $ListItems | Where {$_.FileSystemObjectType -eq "Folder" -and $_.FieldValues.FileLeafRef -ne "Forms"}
        $SubFolders | ForEach-Object {
            #Ensure All Folders in the Local Path
            $LocalFolderPath = $DownloadPath + ($_.FieldValues.FileRef.Substring($Web.ServerRelativeUrl.Length)) -replace "/","\"
            #Create Local Folder, if it doesn't exist
            If (!(Test-Path -Path $LocalFolderPath)) {
                    New-Item -ItemType Directory -Path $LocalFolderPath | Out-Null
            }
            Write-host -f Green "`tEnsured Folder '$LocalFolderPath'"
        }

        #Get all Files from the folder
        $FilesColl =  $ListItems | Where {$_.FileSystemObjectType -eq "File"}

        #Iterate through each file and download
        $FilesColl | ForEach-Object {
            #Frame the Parameters to download file
            $FileDownloadPath = ($DownloadPath + ($_.FieldValues.FileRef.Substring($Web.ServerRelativeUrl.Length)) -replace "/","\").Replace($_.FieldValues.FileLeafRef,'')
            $FileName = $_.FieldValues.FileLeafRef
            $SourceURL = $_.FieldValues.FileRef
            #Download the File
            Get-PnPFile -ServerRelativeUrl $SourceURL -Path $FileDownloadPath -FileName $FileName -AsFile -force
            Write-host -f Green "`tDownloaded File '$FileName' from '$SourceURL'"
        }
    }
    Catch {
        Write-Host -f Red "Error Downloading Library '$($List.Title)' :"$_.Exception.Message
    }
}

#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$DownloadPath ="C:\Temp\NewDocs"

#Connect to SharePoint Online
Connect-PnPOnline $SiteURL -Interactive
$Web = Get-PnPWeb

#Exclude certain libraries
$ExcludedLists = @("Form Templates", "Preservation Hold Library","Site Assets", "Pages", "Site Pages", "Images",
                            "Site Collection Documents", "Site Collection Images","Style Library")

#Get all non-hidden document libraries 
$DocumentLibraries = Get-PnPList -Includes RootFolder | Where {$_.BaseType -eq "DocumentLibrary" -and $_.Title -notin $ExcludedLists -and $_.Hidden -eq $False}
       
#Enumerate each library
ForEach($Library in $DocumentLibraries)
{
    Download-PnPLibrary -List $Library -DownloadPath $DownloadPath
}

Bu makalede, tüm belgelerin SharePoint Online'dan farklı yöntemlerle indirilmesi tartışılmıştır. Özel ihtiyaçlarınıza bağlı olarak, belirli bir kitaplıktaki tüm belgeleri hızlı ve kolay bir şekilde yerel makinenize indirebilirsiniz.

PowerShell kullanarak bir kitaplıktaki tüm belgeleri indirmek için diğer gönderime bakın: SharePoint Çevrimiçi Belge Kitaplığından Tüm Dosyaları İndirmek için PowerShell

İlgili makaleler