SharePoint Online: Töltse le az összes fájlt egy mappából a PowerShell segítségével
Követelmény: A SharePoint Online PowerShell egy mappában lévő fájlok listázásához.
PowerShell a fájlok letöltéséhez a SharePoint Online mappából
Szüksége volt már arra, hogy az összes fájlt lekérje a SharePoint Online egy mappájából? Lehet, hogy a fájlokat egy másik helyre költözteti, és mindent meg kell ragadnia a mappából. Talán szeretne egy gyors módot az összes fájl lekérésére egy adott mappából anélkül, hogy mindegyikben navigálna. Bármi legyen is az oka, a PowerShell segíthet! Ez a blogbejegyzés bemutatja, hogyan használhatja a PowerShellt a SharePoint Online adott mappájából az összes fájl lekéréséhez.
A webböngészőben használja az „Exportálás Excelbe” gombot az eszköztáron, hogy megkapja az összes fájl és mappa listáját (az almappákból rekurzívan!).
A PowerShell segítségével kérjünk le minden fájlt a SharePoint Online dokumentumtár egy mappájából.
#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Function Get-FilesFromFolder()
{
param
(
[Parameter(Mandatory=$true)] [string] $SiteURL,
[Parameter(Mandatory=$true)] [string] $FolderURL
)
Try {
#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Cred
#Get the Folder and Files
$Folder=$Ctx.Web.GetFolderByServerRelativeUrl($FolderURL)
$Ctx.Load($Folder)
$Ctx.Load($Folder.Files)
$Ctx.ExecuteQuery()
#Iterate through each File in the folder
Foreach($File in $Folder.Files)
{
#Get Name for each File
Write-Host $File.Name
}
}
Catch {
write-host -f Red "Error Getting Files from Folder!" $_.Exception.Message
}
}
#Set Parameter Values
$SiteURL="https://crescent.sharepoint.com/sites/marketing"
$FolderURL="/Branding/Classified/Finance Department Files"
#Call the function to get list items from folder
Get-FilesFromFolder -SiteURL $SiteURL -FolderURL $FolderURL
PnP PowerShell az összes fájl lekéréséhez egy mappából a SharePoint Online-ban
Ha az összes fájlt rekurzívan le szeretné gyűjteni egy mappából, a PowerShell Get-PnPFolderItem parancsmagot használhatja:
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$FolderSiteRelativeUrl = "/Shared Documents/2017" #Folder's Site Relative Path
#Get Credentials to connect
$Cred = Get-Credential
Try {
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials $Cred
#Get All Files from the Folder
$FolderItems = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeUrl -ItemType File -Recursive
Write-host "Total Number of Files in the Folder:" $FolderItems.Count
ForEach($File in $FolderItems)
{
$File.Name
}
}
catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
Ez a SharePoint Online PowerShell az összes fájlt megkapja a mappából. Bár a fenti szkript tökéletesen működik az 5000 elemnél kisebb dokumentumkönyvtárak esetében, a nagyobb dokumentumkönyvtáraknál a PnP PowerShell Get-PnPFolderItem parancsmag hibát jelez:
Get-PnPFolderItem : A megkísérelt művelet le van tiltva, mert meghaladja a listanézeti küszöböt.”.
Tehát a probléma enyhítése érdekében lecserélhetjük a Get-PnPListItem parancsmagra.
#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/Marketing"
$ListName ="Branding"
$FolderServerRelativePath = "/sites/Marketing/Branding*" #Any file under the given path
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
#Get all files from folder
Get-PnPListItem -List $ListName -PageSize 2000 | Where {$_.FieldValues.FileRef -like $FolderServerRelativePath -and $_.FileSystemObjectType -eq "File" } | ForEach-Object {
Write-host $_.FieldValues.FileRef
}
Íme egy másik PowerShell, amellyel az összes elemet letöltheti egy SharePoint Online mappából: SharePoint Online: Az összes elem lekérése egy mappában
Gyakran Ismételt Kérdések:
Hogyan kaphatok listát az összes SharePoint-könyvtár fájlról?
Az összes SharePoint-könyvtárfájl listáját néhány különböző módon kaphatja meg. Az egyik lehetőség az eszköztár „Exportálás CSV-be” funkciójának használata, amely visszaadja az összes SharePoint-könyvtárfájl listáját és azok helyét a kiszolgálón. Egy másik módszer a PowerShell-szkript használata a SharePoint Online dokumentumtárban lévő összes fájl és mappa listájának lekérésére.
További információ: A SharePoint Online Document Library összes fájljának letöltése a PowerShell segítségével
Hogyan tölthet le dokumentumtárat a SharePoint Online-ból?
A dokumentumtár letöltésének legegyszerűbb módja: Navigáljon a SharePoint dokumentumtárhoz, válassza ki az összes fájlt és mappát, majd kattintson a „Letöltés” gombra az eszköztáron. Ez egy ZIP-fájlt biztosít a dokumentumtár összes fájljával és mappájával.
A PowerShell segítségével is letölthet dokumentumtárat a SharePoint Online-ból.
