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.

Solution:

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 = "http://projects.crescent.com"
$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
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

Information Technology Professional with Two decades of SharePoint Experience.

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?

    Reply
    • 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.

      Reply

Leave a Reply