SharePoint Online: PowerShell kullanarak Tüm Liste Öğelerini Sil


Gereksinim: PowerShell'i kullanarak SharePoint Çevrimiçi Listesindeki Tüm Öğeleri Silin.

SharePoint Online - Office 365 sitesinde bir grup öğe içeren bir listemiz var ve bunların SharePoint web kullanıcı arayüzünden tek tek silinmesi yerine toplu olarak silinmesi gerekiyor. Öyleyse tüm liste öğelerini silmek için SharePoint Online PowerShell'i kullanalım. Bu blog gönderisi, bir SharePoint Online sitesindeki tüm liste öğelerini silmek için PowerShell'i nasıl kullanacağınızı gösterecektir.

SharePoint Online: Bir Listedeki Tüm Öğeler Nasıl Silinir?

Listeler, SharePoint Online'ın temel bir bileşenidir ve kullanıcılara verileri depolamak ve yönetmek için esnek ve özelleştirilebilir bir yol sağlar. Ancak, eski verileri temizlemek için veya başka nedenlerle listedeki öğeleri silmeniz gerekebileceği zamanlar olabilir.

SharePoint Online'daki tüm liste öğeleri nasıl silinir? SharePoint Online listesindeki tüm öğeleri silmek için aşağıdakileri yapın:

  1. Listenize göz atın ve listedeki ilk sütunun yanındaki onay kutusunu işaretleyerek listedeki tüm öğeleri seçin. Bu, liste görünümündeki tüm öğeleri vurgulamalıdır.
  2. Listenin menü çubuğundaki “Sil” düğmesini tıklayın.

  3. İstemi onaylayın. Seçilen öğe geri dönüşüm kutusuna gönderilecek.

SharePoint aynı anda 100 öğe seçmenize olanak tanır! Ancak modern listelerde sayfanın en altına kaydırarak tüm öğeleri seçebilirsiniz; böylece SharePoint geri kalan öğeleri yükler ve seçer. Ya çok daha büyük bir listeniz varsa? PowerShell burada zaman tasarrufu sağlar!

Onay kutularını görmüyorsanız, Liste görünümünü düzenleyin >> Tablo Görünümü bölümünün altında “Bireysel öğe onay kutularına izin ver” seçeneğinin seçili olduğundan emin olun!

PowerShell kullanarak SharePoint Online'da Tüm Liste Öğelerini Toplu Olarak Silme:

SharePoint Online'ı yönetiyorsanız, bir noktada toplu silme işlemi gerçekleştirmeniz gerekme ihtimali yüksektir. Bu blog gönderisi, SharePoint Online listesindeki öğeleri toplu olarak silmek için PowerShell'i nasıl kullanacağınızı gösterecektir. PowerShell ile istemci tarafı nesne modelini (CSOM) kullanarak SharePoint Online Office 365'teki tüm liste öğelerini silmek için kullanılan komut dosyası buradadır.


#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"
  
#Parameters
$SiteURL="https://crescent.sharepoint.com"
$ListName="Projects"

#Get Credentials to connect 
$Cred = Get-Credential

#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password)

#Get the List items to delete
$List = $Ctx.web.Lists.GetByTitle($ListName)
$ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery()) 
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()       
 
write-host "Total Number of List Items found:"$ListItems.Count
 
#SharePoint Online PowerShell to delete all list items
If($ListItems.Count -gt 0)
{
    #Loop through each item and delete
    For($i = $ListItems.Count-1; $i -ge 0; $i--)
    {
        $ListItems[$i].DeleteObject()
    } 
    $Ctx.ExecuteQuery()
         
    Write-Host "All List Items deleted Successfully!"
} 

Bu PowerShell betiği, SharePoint Online listesindeki tüm öğeleri siler. Lütfen bu öğelerin Geri Dönüşüm Kutusu'na taşınmadığını, kalıcı olarak silindiğini unutmayın! Bu PowerShell betiği, büyük bir listeden toplu öğeleri silerken oldukça yararlı olabilir.

PowerShell, SharePoint Online'daki Büyük Listelerdeki Tüm Öğeleri Silmek İçin

Daha fazla sayıda öğe (>5000) içeren bir SharePoint listeniz veya kitaplığınız varsa, "Yönetici tarafından zorunlu kılınan liste görüntüleme eşiğini aştığı için işlem girişimi yasaklandı." hatasıyla karşılaşabilirsiniz. hata. Bu sorunu hafifletmek için partideki öğelerin listesini silelim. İşte toplu işteki liste öğelerini silmek için PowerShell betiğim.


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"
    
#Config Parameters
$SiteURL="https://crescent.sharepoint.com"
$ListName="Projects"
$BatchSize = 500
  
#Setup Credentials to connect
$Cred = Get-Credential
  
Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
  
    #Get the web and List
    $Web = $Ctx.Web
    $List=$web.Lists.GetByTitle($ListName)
    $Ctx.Load($List)
    $Ctx.ExecuteQuery()
    Write-host "Total Number of Items Found in the List:"$List.ItemCount
 
    #Define CAML Query to get list items in batches
    $Query = New-Object Microsoft.SharePoint.Client.CamlQuery
    $Query.ViewXml = "<View Scope='RecursiveAll'><RowLimit Paged='TRUE'>$BatchSize</RowLimit></View>"
 
    Do {  
        #Get items from the list in batches
        $ListItems = $List.GetItems($Query)
        $Ctx.Load($ListItems)
        $Ctx.ExecuteQuery()
         
        #Exit from Loop if No items found
        If($ListItems.count -eq 0) { Break; }
 
        Write-host Deleting $($ListItems.count) Items from the List...
 
        #Loop through each item and delete
        ForEach($Item in $ListItems)
        {
            #Delete SharePoint list items
            $List.GetItemById($Item.Id).DeleteObject()
        } 
        $Ctx.ExecuteQuery()
 
    } While ($True)
 
    Write-host -f Green "All Items Deleted!"
}
Catch {
    write-host -f Red "Error Deleting List Items!" $_.Exception.Message
}

Bu betik, PowerShell kullanarak SharePoint Online'daki tüm liste öğelerini siler.

“DeleteObject()” yöntemi öğeyi kalıcı olarak siler. Öğeyi geri dönüşüm kutusuna göndermek için “Recycle()”ı kullanın.

Tüm Liste Öğelerini Silmek için SharePoint Online PnP PowerShell

İşte SharePoint Online'daki listeyi boşaltmak için PnP PowerShell.


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/marketing"
$ListName ="Records"

#Get Credentials to connect
$Cred = Get-Credential

Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Credentials $Cred
    
    #Get All List Items in Batch
    $ListItems = Get-PnPListItem -List $ListName -PageSize 1000 | Sort-Object ID -Descending

    #sharepoint online powershell delete all items in a list
    ForEach ($Item in $ListItems)
    {
        Remove-PnPListItem -List $ListName -Identity $Item.Id -Force
    }
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

Öğeleri kalıcı olarak silmek yerine geri dönüşüm kutusuna göndermek için -Recycle parametresini kullanın!

Liste Öğelerini Toplu Olarak Silmenin Daha Hızlı Bir Yolu

Yukarıdaki yöntemler yavaştır ve bir öğeyi yaklaşık 1 saniyede siler. Ancak aşağıdaki komut dosyası engelleme yöntemi öğeleri daha hızlı siler.


Get-PnPList -Identity $ListName | Get-PnPListItem -PageSize 100 -ScriptBlock { 
    Param($items) Invoke-PnPQuery } | ForEach-Object {$_.Recycle()
 }

PnP Toplu Yöntemi ile SharePoint Online'daki Liste Öğelerini Daha Hızlı Temizleyin

New-PnPBatch yöntemi toplu işlemleri nispeten daha hızlı gerçekleştirir. Burada PnP Batch yöntemiyle tüm öğelerin kaldırılmasına ilişkin bir örnek verilmiştir.


$SiteURL = "https://crescent.sharepoint.com/sites/Operations"
$ListName = "Inventory"

#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive

#Get List Items to Delete
$ListItems =  Get-PnPListItem -List $ListName -PageSize 500

#Create a New Batch
$Batch = New-PnPBatch

#Clear All Items in the List
ForEach($Item in $ListItems)
{    
     Remove-PnPListItem -List $ListName -Identity $Item.ID -Recycle -Batch $Batch
}

#Send Batch to the server
Invoke-PnPBatch -Batch $Batch

Kapanıyor

Özetle, bu makalede özetlenen adımları izleyerek, PowerShell'i kullanarak SharePoint Online listesindeki tüm liste öğelerini kolayca silebilirsiniz. Bu yaklaşım, özellikle çok sayıda öğe içeren geniş bir listeniz olduğunda, zamandan ve emekten tasarruf etmenize ve verilerinizin etkili bir şekilde yönetilmesini sağlamanıza yardımcı olabilir. SharePoint Online belge kitaplığındaki tüm dosyaları silmek için şunu kullanın: SharePoint Online: PowerShell kullanarak Belge Kitaplığındaki Tüm Dosyaları Silin

Sıkça Sorulan Sorular:

PowerShell'de SharePoint Online'dan bir dosyayı nasıl silerim?

PowerShell'de SharePoint Online'dan bir dosyayı silmek için, SharePoint Kalıpları ve Uygulamaları (PnP) PowerShell modülündeki Remove-PnPFile cmdlet'ini kullanabilirsiniz. SharePoint Online'daki bir belge kitaplığından bir dosyayı silen örnek bir PowerShell betiği: Remove-PnPFile -ServerRelativeUrl "/sites/yoursite/Shared Documents/yourfile.docx"

PowerShell'i kullanarak OneDrive'daki bir klasörü nasıl silerim?

OneDrive İş'te bir Klasörü silmek için PnP Powershell'deki Remove-PnPFolder cmdlet'ini kullanın. Örn.,
Connect-PnPOnline -Url “https://Crescent-my.sharepoint.com/personal/salaudeen_Crescent_com” -Etkileşimli
Kaldır-PnPFolder -Ad “Yedekleme” -Klasör “Belgeler”

SharePoint Online'da bir belge kitaplığını nasıl silerim?

SharePoint Online'da bir belge kitaplığını silmek için SharePoint Online web arayüzünü veya PowerShell'i kullanabilirsiniz.
Web arayüzünü kullanarak SharePoint Online'da bir belge kitaplığını silmek için şu adımları izleyin: SharePoint sitesine ve silinecek belge kitaplığına gidin. Sağ üst köşedeki ayarlar dişli simgesine tıklayın ve açılır menüden “Kütüphane Ayarları”nı seçin. Belge kitaplığı ayarları altındaki “Diğer Kitaplık Ayarları”na ve ardından “Bu Belge Kitaplığını Sil” bağlantısına tıklayın. Ayrıca, Remove-PnPList'i kullanarak PowerShell cmdlet'ini kullanarak SharePoint Online'daki bir belge kitaplığını da silebilirsiniz.
Daha fazla bilgi: SharePoint Online'da bir belge kitaplığı nasıl silinir?

PowerShell'de bir SharePoint listesini nasıl silerim?

PowerShell kullanarak bir listeyi silmek için şunu kullanın: Remove-PnPList -Identity "Liste Adı" -Force
Daha fazla bilgi: PowerShell kullanarak SharePoint Online'da bir liste nasıl silinir?

İlgili makaleler