Compare SharePoint List Items using PowerShell

Requirement: We’ve two task lists with hundreds of rows in it. Wanted to compare these two SharePoint Lists and extract the difference from both of them.


Let’s use PowerShell script to compare and extract the difference between SharePoint lists!

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Variables for Processing
$SiteURL = ""
$ListOneName ="Team One Tasks"
$ListTwoName ="Tasks Two Tasks"
$ColumnToCompare="Task Name"

#Get site and List objects
$Web = Get-SPWeb $SiteURL
$ListOne = $web.lists[$ListOneName]
$ListTwo = $web.lists[$ListTwoName]

#Fetch specifc Column Values from each lists to compare
$ListOneValues = @()
$ListTwoValues = @()

$ListOne.Items| foreach { $ListOneValues+= $_[$ColumnToCompare] }
$ListTwo.Items | foreach { $ListTwoValues+= $_[$ColumnToCompare] }

Compare-Object $ListOneValues $ListTwoValues # -PassThru

Output: Here the InputObject column gives the difference.

Compare SharePoint Lists using PowerShell

The SideIndicator simply denotes where is the difference is.

  • <= – Difference is in Left side – first object we compare
  • => – Difference is in the Right side – Second object in the comparison

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!

2 thoughts on “Compare SharePoint List Items using PowerShell

  • September 14, 2017 at 10:07 AM

    This doesn’t explain:

    Where does the Microsoft.SharePoint.PowerShell snap-in come from and how do I get it?

    • September 18, 2017 at 1:05 PM

      Microsoft.SharePoint.PowerShell snap-in comes with SharePoint installation. Run this code from any of App/Web Server.


Leave a Reply