Delete Attachments from SharePoint List Items using PowerShell

Requirement: Delete Attachment from SharePoint List Item

How to Remove an Attachment from a List Item in SharePoint?

There is a requirement to delete all the attachments named as “xyz.presales.document.docx” from a SharePoint List where 100’s of list items already created with a lot of attachments. Attachments can be removed from a list item by doing the following:

  1. Navigate to the list where you want to remove attachments.
  2. Select the list item where attachment to be removed and click on “Edit Item” from the ribbon.
  3. On the Edit Item page, click the delete option next to the attachment to be deleted. Confirm the prompt.
  4. On the Edit Item page, click the Save button.

The attachment is deleted from the item!

Remove Attachments from SharePoint List Items using PowerShell:

This requirement can be achieved with either the SharePoint Object model or with PowerShell. Here is the script to programmatically delete the attachments based on their name.

$web=Get-SPWeb -identity "http://sharepointsite.com"
$list=$web.lists["Documents"]
foreach($item in $List.Items)
{
	for($i=$item.Attachments.count-1; $i -ge 0; $i--) 
	{ 
		if($item.Attachments[$i].endswith("presales.document.docx"))
		{
			write-host "File Deleted:" $item.Attachments[$i]
			$Item.Attachments.Delete($item.Attachments[$i])
		}
	}  
	$item.update()
}

Salaudeen Rajack

Salaudeen Rajack is a SharePoint Architect with Two decades of SharePoint Experience. He loves sharing his knowledge and experiences with the SharePoint community, through his real-world articles!

Leave a Reply