Just thought I would post this little script that shows how to access a list items version history in a SharePoint list.
[void][System.reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
$site = new-object Microsoft.SharePoint.SPSite("[URL]http://sharepoint.domain.com/[/URL]")
$web = $Site.OpenWeb("marketneed")
$list = $web.Lists["NPI"]
$items = $list.Items
foreach($item in $items)
{
if($item.ID -eq 94)
{
"##################### " + $item["Title"] + " #####################"
$oldItem = $item.Versions.GetVersionFromLabel("4.0")
foreach($field in $oldItem.Fields)
{
if(($field.ShowInVersionHistory -eq $true) -and ($item[$field.Title] -ne $oldItem[$field.Title])-and ($item[$field.Title] -ne "<div></div>"))
{
$field.Title + " - Old value: " + $oldItem[$field.Title] + " Current value: " + $item[$field.Title] +"`n"
}
}
}
}
$web.Dispose()
$site.Dispose()