kwizcom banner advertisement

Download All Attachments from SharePoint List Items using PowerShell

Requirement: Download all attachments from a SharePoint list to local folder. Lets use PowerShell to download attachments from all SharePoint list items.
download attachment from sharepoint list using powershell

PowerShell to Download Attachments from SharePoint List:
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
#For MOSS 2007 compatibility
Function global:Get-SPWeb($url)
{
  $site= New-Object Microsoft.SharePoint.SPSite($url)
        if($site -ne $null)
            {
               $web=$site.OpenWeb()        
            }
    return $web
}

#Site URL and List Name variables
$WebURL = "http://intranet.crescent.com/sites/purchase"    
$LibraryName = "Invoinces"   

#Local folder to which attachments to be downloaded
$DownloadPath = "C:\Docs"     

#Get the web
$Web = Get-SPWeb $WebURL
#Get the Library
$List = $Web.Lists[$LibraryName]    

    #Loop through each List item
    foreach ($ListItem in $List.Items)
     {   
       #Set path to save attachment
       $DestinationFolder = $DownloadPath + "\" + $ListItem.ID          

       #Check if folder exists already. If not, create the folder
         if (!(Test-Path -path $DestinationFolder))        
            {            
                New-Item $DestinationFolder -type directory          
            }
      
          #Get all attachments
          $AttachmentsColl = $ListItem.Attachments
          
          #Loop through each attachment
          foreach ($Attachment in $AttachmentsColl)    
               { 
                 #Get the attachment File       
                 $file = $web.GetFile($listItem.Attachments.UrlPrefix + $Attachment)        
                 $bytes = $file.OpenBinary()                
                
                 #Save the attachment as a file  
                 $FilePath = $DestinationFolder + " \" + $Attachment
                 $fs = new-object System.IO.FileStream($FilePath, "OpenOrCreate")
                 $fs.Write($bytes, 0 , $bytes.Length)    
                 $fs.Close()    
                }
    }
For C# version of the above code, Go to: Download Attachments from SharePoint List Programmatically
Download All Attachments from SharePoint List Items using PowerShell Download All Attachments from SharePoint List Items using PowerShell Reviewed by Salaudeen Rajack on March 07, 2014 Rating: 5

1 comment:

Please Login and comment to get your questions answered!

Powered by Blogger.