I would like to check if there is an option(without using a third party software) to pull a summary of SharePoint 2013 list item version history. the SharePoint OOB option enables to check item by item only, not user-friendly at all. thanks!

3 Answers 3


You can use this-

 if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) 
    Add-PSSnapin Microsoft.SharePoint.PowerShell;
 $web = Get-SPWeb http://webUrl
 $list = $web.GetList("Provide ListName")
 $item = $list.GetItemById(Provide Item ID)
 foreach($version in $item.Versions)
   Write-Host $item.Name "'s version" $version.VersionLabel "has been Modified by" $version.CreatedBy.User.DisplayName ":: URL ->" $item.Url -ForegroundColor Green

Please refer to the following articles

SharePoint 2013 Retrieve the List Item Version History

Retrieve The List Item Version History


If versioning is needed for admin of site or library you can think of writing reusable power-shell script to generate excel file with all document related versioning history.

Generate a report in excel format which includes information like:

  • Site Collection Title
  • Site Name
  • Library
  • File Name
  • File URL
  • File Type
  • Last Modified Date
  • Number of Versions
  • Latest Version Size
  • Version Size
  • Total size

You can check the technical details on the link below. It is beautifully explained how to achieve above report generated site collection wise using power-shell

Reference : PowerShell Script To Get SharePoint Document Versioning Report


You can use following PowerShell commands to retrieve all versions including comments, the user who creates the version and so on for all items and report the data in a .csv file.

# ******* Variables Section ******************
#Define these variables 
$ListName ="<list/library name>"
$ReportFile = "C:\temp\Invoice_VersionHistory.csv"
# *********************************************
#delete file if exists
If (Test-Path $ReportFile)
Remove-Item $ReportFile
#Get the Web and List
$Web = Get-SPWeb $WebURL
$List = $web.Lists.TryGetList($ListName) 
 #Check if list exists
if($List -ne $null)
  #Get all list items
  $ItemsColl = $List.Items
  #Write Report Header
  Add-Content -Path $ReportFile -Value "Item ID, Version Lable, Created by, Created at, Title"
  #Loop through each item
  foreach ($item in $ItemsColl) 
   #Iterate each version
      foreach($version in $item.Versions)
    #Get the version content
    $VersionData = "$($item.id), $($version.VersionLabel), $($version.CreatedBy.User.DisplayName), $($version.Created), $($version['Title'])"
    #Write to report
    Add-Content -Path $ReportFile -Value $VersionData

Write-Host "Version history has been exported successfully!"

If you wants to get all item version for all lists/libraries in the site, you can iterate lists/libraries.


Export SharePoint List Item Version History to Excel

List Item Versions using PowerShell

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.