Weboldal keresés

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.

Tippek: Több fájl törléséhez is használhatja az Intéző nézetet! Lépjen a könyvtárba >> Kattintson a „Megnyitás az Intézővel” lehetőségre a Könyvtár szalaglapján. Válassza ki és törölje a fájlokat!

Néhány kattintással több fájlt, mappát és almappát törölhet a SharePoint Online dokumentumtárból:

  1. 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.

  2. Kattintson a „Törlés” gombra a felső hivatkozássávon.
  3. A Törlés párbeszédpanelen erősítse meg a törlési műveletet a „Törlés” gombra kattintva.

  4. 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.

Kapcsolódó cikkek