SharePoint Online: Törölje az összes fájlt a dokumentumtárban a PowerShell segítségével
Követelmény: Törölje az összes dokumentumot a SharePoint Online könyvtárában.
Hogyan lehet törölni egy könyvtár összes dokumentumát a SharePoint Online-ban?
A SharePoint Online-ban előfordulhat, hogy időnként törölnie kell a dokumentumtár összes fájlját. Például, ha nagyszámú dokumentumot importál a könyvtárba, vagy ha régi fájlokat tisztít meg. Nézzük meg, hogyan törölheti gyorsan az összes dokumentumot a könyvtárban.
Néhány kattintással több fájlt, mappát és almappát törölhet a SharePoint Online dokumentumtárból:
Keresse meg a SharePoint Online dokumentumtárat a böngészőben, vigye az egérmutatót a fejléc fölé, és kattintson a pipára az összes fájl kijelöléséhez.
- Kattintson a „Törlés” gombra a felső hivatkozássávon.
-
A Törlés párbeszédpanelen erősítse meg a törlési műveletet a „Törlés” gombra kattintva.
A dokumentumtár felső részén megjelenik a kis állapotmező, amely jelzi, hogy az elemet törölték.
Miután az összes elemet törölték a dokumentumtárból, a listanézet frissül, és a törölt fájlok átkerülnek a SharePoint webhely lomtárába.
Kérjük, vegye figyelembe, hogy a könyvtárból való törlés előtt meg kell győződnie arról, hogy a többi felhasználó egyetlen fájlt sem hagy ki. Ellenkező esetben „A fájl ki van kérve vagy zárolva” hibaüzenet jelenhet meg. Íme egy másik bejegyzés a SharePoint Online Library összes fájljának bejelentkezéséről: SharePoint Online: Az összes kivett fájl tömeges bejelentkezése a PowerShell segítségével
Eleged van a fájlok kézi törléséből a SharePoint Online-ban? Időnként előfordulhat, hogy egyszerre több dokumentumot is törölhet. Bár ez időigényes feladat lehet, itt van egy PowerShell-szkript a folyamat automatizálásához.
SharePoint Online: Törölje az összes fájlt a dokumentumtárban a PowerShell segítségével
Tudta, hogy a PowerShell segítségével törölheti az összes fájlt a SharePoint Online dokumentumtárban? Ez akkor lehet hasznos, ha szeretné megtisztítani a könyvtárat, mielőtt áthelyezné vagy törölné. Ez a cikk bemutatja, hogyan kell ezt megtenni a PowerShell használatával. Ez a PowerShell-szkript törli az összes fájlt egy adott könyvtárból - anélkül, hogy törölné a benne lévő mappákat!
#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 to Delete all files from a given Folder
Function Delete-AllFilesFromFolder([Microsoft.SharePoint.Client.Folder]$Folder)
{
Try {
#Get All Files from the Folder
$Ctx = $Folder.Context
$Files = $Folder.Files
$Ctx.Load($Files)
$Ctx.ExecuteQuery()
#Iterate through each File in the Root folder
Foreach($File in $Files)
{
#Delete the file
$Folder.Files.GetByUrl($File.ServerRelativeUrl).Recycle() | Out-Null
Write-host -f Green "Deleted File '$($File.Name)' from '$($File.ServerRelativeURL)'"
}
$Ctx.ExecuteQuery()
#Process all Sub Folders of the given folder
$SubFolders = $Folder.Folders
$Ctx.Load($SubFolders)
$Ctx.ExecuteQuery()
Foreach($Folder in $SubFolders)
{
#Exclude "Forms" and Hidden folders
If( ($Folder.Name -ne "Forms") -and (-Not($Folder.Name.StartsWith("_"))))
{
#Call the function recursively
Delete-AllFilesFromFolder -Folder $Folder
}
}
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
}
}
#Variables for Processing
$SiteURL = "https://Crescent.sharepoint.com/sites/Marketing"
$LibraryRelativeURL = "/sites/Marketing/Shared Documents"
#Get Credentials to connect
$Cred = Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the Root Folder of the Library
$RootFolder=$Ctx.Web.GetFolderByServerRelativeUrl($LibraryRelativeURL)
$Ctx.Load($RootFolder)
#Call the function to delete all Files from a Folder
Delete-AllFilesFromFolder -Folder $RootFolder
Kérjük, vegye figyelembe, hogy ezek a szkriptek az „Újrahasznosítás” módszert használják a fájlok lomtárba küldéséhez. A „DeleteObject” módszerrel véglegesen törölheti a fájlokat!
PowerShell a SharePoint Online Document Library összes fájljának és mappájának törléséhez
Ha törölni szeretné egy könyvtár összes fájlját és almappáját, használja ezt a tömeges törlési szkriptet:
#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"
#Variables for Processing
$SiteURL = "https://Crescent.sharepoint.com/sites/marketing"
$LibraryRelativeURL = "/Sites/Marketing/Shared Documents"
Try {
#Get Credentials to connect
$Cred = Get-Credential
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Credentials
#Get the Library and Files
$Folder=$Ctx.Web.GetFolderByServerRelativeUrl($LibraryRelativeURL)
$Ctx.Load($Folder)
$Files = $Folder.Files
$Ctx.Load($Files)
$Ctx.ExecuteQuery()
#Iterate through each File in the Root folder
Foreach($File in $Files)
{
#Delete the file
$Folder.Files.GetByUrl($File.ServerRelativeUrl).Recycle() | Out-Null
Write-host -f Green "Deleted File '$($File.Name)' from '$($File.ServerRelativeURL)'"
}
$Ctx.ExecuteQuery()
#Process all Sub Folders
$SubFolders = $Folder.Folders
$Ctx.Load($SubFolders)
$Ctx.ExecuteQuery()
Foreach($SubFolder in $SubFolders)
{
#Exclude "Forms" and Hidden folders
If( ($SubFolder.Name -ne "Forms") -and (-Not($SubFolder.Name.StartsWith("_"))))
{
#Delete the folder
$Folder.Folders.GetByUrl($SubFolder.ServerRelativeUrl).Recycle()| Out-Null
Write-host -f Green "Deleted Folder '$($SubFolder.Name)' from '$($SubFolder.ServerRelativeUrl)'"
}
$Ctx.ExecuteQuery()
}
}
Catch {
write-host -f Red "Error:" $_.Exception.Message
}
Ha egy adott fájlt szeretne törölni, használja: Fájlok törlése a SharePoint Online-ban a PowerShell segítségével
PnP PowerShell a SharePoint Online Document Library összes fájljának törléséhez
Hogyan törölhetek tömegesen fájlokat a SharePoint Online-ban? Nos, ez a PowerShell-szkript törli az összes fájlt az adott dokumentumtár összes mappájából és almappájából. (Ne törölje a mappákat, BTW!)
#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/icdocs"
$ListName = "Images"
#Connect to the Site
Connect-PnPOnline -URL $SiteURL -Interactive
#Get the web & document Library
$Web = Get-PnPWeb
$List = Get-PnPList -Identity $ListName
#Function to delete all items in a folder - and sub-folders recursively
Function Delete-AllFilesFromFolder($Folder)
{
#Get the site relative path of the Folder
If($Folder.Context.web.ServerRelativeURL -eq "/")
{
$FolderSiteRelativeURL = $Folder.ServerRelativeUrl
}
Else
{
$FolderSiteRelativeURL = $Folder.ServerRelativeUrl.Replace($Folder.Context.web.ServerRelativeURL,[string]::Empty)
}
#Get All files in the folder
$Files = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeURL -ItemType File
#Delete all files
ForEach ($File in $Files)
{
Write-Host ("Deleting File: '{0}' at '{1}'" -f $File.Name, $File.ServerRelativeURL)
#Delete Item
Remove-PnPFile -ServerRelativeUrl $File.ServerRelativeURL -Force -Recycle
}
#Process all Sub-Folders
$SubFolders = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeURL -ItemType Folder
Foreach($Folder in $SubFolders)
{
#Exclude "Forms" and Hidden folders
If( ($Folder.Name -ne "Forms") -and (-Not($Folder.Name.StartsWith("_"))))
{
#Call the function recursively
Delete-AllFilesFromFolder -Folder $Folder
}
}
}
#Get the Root Folder of the Document Library and call the function
Delete-AllFilesFromFolder -Folder $List.RootFolder
Használhatjuk a Move-PnPListItemToRecycleBin parancsmagot is a fájlok törlésére és a lomtárba küldésére.
#Config Variables
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$LibraryName = "Project Documents"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get All Files from the document library - Exclude Folder Objects
$Files = Get-PnPListItem -List $LibraryName -PageSize 1000 | Where {$_["FileLeafRef"] -like "*.*"}
#Loop through each File
Write-host -f Green "Number of Files Found:"$Files.Count
ForEach($File in $Files)
{
Write-Host ("Deleting File '{0}' at {1}" -f $File["FileLeafRef"], $File["FileRef"])
#Send File
Move-PnPListItemToRecycleBin -List $LibraryName -Identity $File.Id -Force
}
Ürítse ki a SharePoint Online dokumentumtárat a PnP PowerShell segítségével
Mit szólna egy dokumentumtár ürítéséhez az összes fájl, mappa és almappák törlésével?
#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/marketing"
$LibraryName = "Documents"
#Connect to the Site
Connect-PnPOnline -URL $SiteURL -Interactive
#Get the web & Root folder of the library
$Web = Get-PnPWeb
$Library = Get-PnPList -Identity $LibraryName -Includes RootFolder
$RootFolder = $Library.RootFolder
#Function to delete all Files and sub-folders from a Folder
Function Empty-PnPFolder($Folder)
{
#Get the site relative path of the Folder
If($Folder.Context.web.ServerRelativeURL -eq "/")
{
$FolderSiteRelativeURL = $Folder.ServerRelativeUrl
}
Else
{
$FolderSiteRelativeURL = $Folder.ServerRelativeUrl.Replace($Folder.Context.web.ServerRelativeURL,[string]::Empty)
}
#Delete all files in the Folder
$Files = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeURL -ItemType File
ForEach ($File in $Files)
{
#Delete File
Remove-PnPFile -ServerRelativeUrl $File.ServerRelativeURL -Force -Recycle
Write-Host -f Green ("Deleted File: '{0}' at '{1}'" -f $File.Name, $File.ServerRelativeURL)
}
#Process all Sub-Folders
$SubFolders = Get-PnPFolderItem -FolderSiteRelativeUrl $FolderSiteRelativeURL -ItemType Folder
Foreach($SubFolder in $SubFolders)
{
#Exclude "Forms" and Hidden folders
If(($SubFolder.Name -ne "Forms") -and (-Not($SubFolder.Name.StartsWith("_"))))
{
#Call the function recursively
Empty-PnPFolder -Folder $SubFolder
#Delete the folder
$ParentFolderURL = $FolderSiteRelativeURL.TrimStart("/")
Remove-PnPFolder -Name $SubFolder.Name -Folder $ParentFolderURL -Force -Recycle
Write-Host -f Green ("Deleted Folder: '{0}' at '{1}'" -f $SubFolder.Name, $SubFolder.ServerRelativeURL)
}
}
}
#Call the function to empty document library
Empty-PnPFolder -Folder $RootFolder
Míg a fenti szkript tökéletesen működik kisebb, 5000 fájlnál kisebb könyvtárakkal, nagyobb könyvtárakon a „Get-PnPFolderItem : A megkísérelt művelet tilos, mert túllépi a listanézeti küszöböt.” hiba, mivel a Get-PnPFolderItem nem tud kezelni nagy listákat és könyvtárakat. Tehát itt van az alternatív szkript a dokumentumkönyvtár kiürítéséhez az összes fájl és mappa gyorsabb törlésével a PnP Batch módszerrel:
#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Inventory"
$ListName = "Archive"
Try {
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
$List = Get-PnPList $ListName
$ItemCount = $List.ItemCount
If($ItemCount -eq 0) { Write-host "Document Library is Already Empty!" -f Yellow; Break}
#Get All Items from the Library
$global:counter = 0
$ListItems = Get-PnPListItem -List $ListName -PageSize 500 -Fields ID -ScriptBlock { Param($items) $global:counter += $items.Count; Write-Progress -PercentComplete `
($global:Counter / $ItemCount * 100) -Activity "Getting Items from List" -Status "Getting Items $global:Counter of $($ItemCount)"}
Write-Progress -Activity "Completed Getting Items from Library $($List.Title)" -Completed
#Sort List Items based on Server Relative URL - Descending
$SortedItems = $ListItems | Select-Object @{Name="ServerRelativeURL";Expression={$_.FieldValues.FileRef}}, ID | Sort-Object -Descending -Property ServerRelativeURL
#Delete List Items in the Batch
$Batch = New-PnPBatch
ForEach ($Item in $SortedItems)
{
Remove-PnPListItem -List $ListName -Identity $Item.ID -Recycle -Batch $Batch
#Write-host "Deleted Item:"$Item.ServerRelativeURL
}
Invoke-PnPBatch -Batch $Batch -Details
Write-host -f Green "All Items in the Library deleted Successfully!"
}
Catch {
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
Gyorsabb módja az összes elem törlésének egy dokumentumtárból
Bár a fenti módszerek tökéletesen működnek, az összes elem törlése a nagyobb könyvtárakból sok időt vesz igénybe. Tehát itt van a ScriptBlock PowerShell parancs az elemek gyorsabb kötegelt törléséhez.
$SiteURL = "https://crescent.sharepoint.com/sites/papers"
$ListName = "Preservation Hold Library"
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
Get-PnPList -Identity $ListName | Get-PnPListItem -PageSize 100 -ScriptBlock {
Param($items) Invoke-PnPQuery } | ForEach-Object { $_.Recycle() | Out-Null
}
Ez a szkript eltávolítja az összes fájlt és mappát az adott dokumentumtárból! A dokumentumtár törléséhez használja a következőket: Hogyan törölhet dokumentumtárat a SharePoint Online-ban a PowerShell segítségével?
Összefoglalva, az összes fájl törlése a SharePoint Online dokumentumtárból kihívásokkal teli és időigényes folyamat lehet. A PowerShell használata azonban hatékonyabbá és egyszerűbbé teheti ezt a folyamatot. Az ebben az útmutatóban található szkripttel egyszerűen, néhány lépésben törölheti az összes fájlt a SharePoint Online dokumentumtárban.
Gyakran Ismételt Kérdések:
A törölt fájlok véglegesen eltávolíthatók a SharePoint Online-ból?
A SharePoint Online-ban törölt fájlokat a rendszer egy bizonyos ideig (általában 93 napig) megőrzi, mielőtt véglegesen törli őket. A webhelyről törölt elemek A Lomtár a webhelygyűjtemény Lomtárába kerül, ahol a webhelycsoport rendszergazdája visszaállíthatja azokat. Ha egy elem törlődik a Lomtárból, vagy túllépi a megőrzési időt, akkor az véglegesen törlődik!
Mennyi ideig őrzik meg a törölt fájlokat a SharePoint Online-ban?
A SharePoint Online-ban törölt fájlokat az eredeti helyükről való törlés után 93 napig őrzik meg. Ha egy fájlt törölnek egy SharePoint Online webhelyről, az a webhely Lomtárába kerül, ahol 93 napig megőrzi, hacsak valaki nem törli vagy ki nem üríti a Lomtárat. Ha a fájlt 93 napon belül törlik a webhely lomtárából (vagy az első szakasz lomtárából), akkor a webhelygyűjtemény Lomtárába (vagy a 2. szakasz lomtárába) kerül. A lomtár mindkét szakaszában összesen 93 napos megőrzési időszak után a törölt fájlok véglegesen törlődnek, és nem állíthatók vissza.
Hogyan törölhetek könyvtársablont a SharePoint Online-ban?
Feltételezve, hogy rendelkezik szerkesztési jogosultsággal, bármely dokumentumtárat vagy listasablont törölhet, ha a Beállítások fogaskerékre kattint, a „Webhely információi” elemet választja, majd a „Webhely beállításai” elemre kattint. Most kattintson a Sablonok listázása elemre a Galériák alatt, a Keresés, majd törölje a kívánt sablont! Alternatív megoldásként a PowerShell segítségével törölhet dokumentumtár-sablont a SharePoint Online-ban
Hogyan törölhetek minden elemet egy SharePoint-listából?
A SharePoint-lista összes elemének törléséhez a „Szerkesztés rácsnézetben” vagy a „Gyorsszerkesztés” nézetben kiválaszthatja az összes elemet, majd tömegesen törölheti azokat. Alternatív megoldásként PowerShell-parancsokkal törölheti az összes elemet a listából.
Hogyan törölhetem a dokumentumok több verzióját a SharePointban?
A SharePoint Online-ban lévő dokumentumok több verziójának törléséhez nyissa meg a dokumentumtárat, és válassza ki azokat a fájlokat, amelyek verzióit törölni szeretné. Ezután kattintson a jobb gombbal a fájlra, és válassza a „Verzióelőzmények” lehetőséget. Innen törölheti a dokumentum összes korábbi verzióját az „Összes verzió törlése” gombra kattintva. Alternatív megoldásként használhatja a PowerShellt a dokumentumok összes korábbi verziójának törlésére a SharePoint Online-ban.



