SharePoint Online: PowerShell kullanarak Liste Öğesinden Ekleri Silme


Gereksinim: SharePoint Çevrimiçi Liste Öğesinden Eki Silin.

SharePoint Online'daki Liste Öğelerinden Ekler Nasıl Silinir?

Liste öğelerindeki ekleri silmenin bir yolunu mu arıyorsunuz? Bu blog gönderisi, bir SharePoint liste öğesinden bir ekin nasıl kaldırılacağını size gösterecektir. Ayrıca SharePoint Online liste öğelerindeki ekleri silmek için PowerShell komut dosyalarını da paylaşacağız.

SharePoint liste öğelerinden bir eki silmek için aşağıdakileri yapın:

  1. SharePoint Çevrimiçi Listesine gidin >> Liste Öğesini Seçin >> Araç bölmesinden Düzenle'ye tıklayın.
  2. Düzenleme panelinde aşağıya doğru kaydırın ve herhangi bir eki liste öğesinden silmek için yanındaki küçük X Simgesini tıklayın.

  3. Değişikliklerinizi uygulamak için Kaydet'e tıklayın.

Ek artık SharePoint Online liste öğesinden kaldırılacak. Birden fazla liste öğesi için işlemi otomatikleştirmek amacıyla PowerShell'i kullanarak ekleri de kaldırabilirsiniz.

PowerShell kullanarak Liste Öğesindeki Tüm Ekleri Silme

PowerShell'i kullanarak SharePoint Online liste öğesindeki tüm ekleri silelim.


#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"

#Set Parameters
$SiteURL= "https://crescent.sharepoint.com"
$ListName="Projects"
$ItemID="4"

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 List & List Item
    $List = $Ctx.Web.Lists.GetByTitle($ListName)
    $Ctx.Load($List)
    $ListItem = $List.GetItemByID($ItemID)
    $Ctx.Load($ListItem)
    $Ctx.ExecuteQuery()
 
    #Get All existing attachments
    $AttachmentFiles = $ListItem.AttachmentFiles
    $Ctx.Load($AttachmentFiles)
    $Ctx.ExecuteQuery()
 
    ForEach($AttachmentFile in $AttachmentFiles)
    {
        $AttachmentFile.DeleteObject()
        $Ctx.ExecuteQuery()
 
        write-host  -f Green "Attachment File '$AttachmentFile' Removed from List Item!"
    }
}
Catch {
    write-host -f Red "Error Removing Attachment From List!" $_.Exception.Message
}

Eki SharePoint Çevrimiçi Liste Öğesinden Kaldırmak için PowerShell:

Belirli bir liste öğesinden belirli bir eki silmek için komut dosyasını yeniden kullanılabilir bir işlevin içine saralım:


#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 Remove-AttachmentFromListItem()
{
    param
    (
        [Parameter(Mandatory=$true)] [string] $SiteURL,
        [Parameter(Mandatory=$true)] [string] $ListName,
        [Parameter(Mandatory=$true)] [string] $ItemID,
        [Parameter(Mandatory=$false)] [string] $AttachmentFileName
    )    
    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 List & List Item
        $List = $Ctx.Web.Lists.GetByTitle($ListName)
        $Ctx.Load($List)
        $ListItem = $List.GetItemByID($ItemID)
        $Ctx.Load($ListItem)
        $Ctx.ExecuteQuery()

        #Get All existing attachments
        $AttachmentFiles = $ListItem.AttachmentFiles
        $Ctx.Load($AttachmentFiles)
        $Ctx.ExecuteQuery()

        #Check if attachment file name exists
        $AttachmentFile = $AttachmentFiles | where { ($_.FileName -eq $AttachmentFileName) }
        If($AttachmentFile -ne $Null)
        {
            $AttachmentFile.DeleteObject()
            $Ctx.ExecuteQuery()

            write-host  -f Green "Attachment File '$AttachmentFileName' Removed from List Item!" 
        }
        else
        {
            write-host -f Yellow "Attachment File '$AttachmentFileName' Doesn't Exist!"
        }
    }
    Catch {
        write-host -f Red "Error Removing Attachment From List!" $_.Exception.Message
    }
}

#Set Parameters
$SiteURL= "https://crescent.sharepoint.com"
$ListName="Projects"
$ItemID="64"
$AttachmentFileName="ProjectProposal.docx"

#Call the function to copy list items
Remove-AttachmentFromListItem -SiteURL $SiteURL -ListName $ListName -ItemID $ItemID -AttachmentFileName $AttachmentFileName

PnP PowerShell, SharePoint Çevrimiçi Liste Öğesinden Eki Silmek İçin

Bir liste öğesi ekini kaldırmanın PnP PowerShell yolu:


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com"
$ListName ="Projects"
$ListItemTitle = "SharePoint 2016 Upgrade"
$AttachmentFileName= "Project Proposal.docx"

#Connect PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)

#Get the Context
$Context = Get-PnPContext
 
#Get the List Item from "Title" field value
$Query = "<View><Query><Where><Eq><FieldRef Name='Title'/><Value Type='Text'>$ListItemTitle</Value></Eq></Where></Query></View>"
$ListItem = Get-PnPListItem -List $ListName -Query $Query -PageSize 1
 
#Get List attachment by its file name
$Attachment = $ListItem.AttachmentFiles.GetByFileName($AttachmentFileName)

#Delete the attachment
$Attachment.DeleteObject() 
$Context.ExecuteQuery()

Ayrıca PnP PowerShell cmdlet'ini Remove-PnPListItemAttachment'ı da kullanabilirsiniz.


#Parameters
$SiteURL = "https://crescent.sharepoint.com/sites/Retail"
$ListName = "Projects"
$ListItemID = 13
$AttachmentFile = "MonthlyRpt.csv"

#Connect to SharePoint Online Site
Connect-PnPOnline -Url $SiteURL -Interactive

#Remove Attachment file from a list item
Remove-PnPListItemAttachment -List $ListName -Identity $ListItemID -FileName $AttachmentFile -Force -Recycle

İlgili makaleler