Сегодня был неприятно удивлен тем, что обнаружил повторяющиеся записи в том списке SharePoint, в котором они не должны были появляться. Вероятность появления повторяющихся записей была, потому сразу озадачился узнать, сколько всего повторяющихся записей образовалось. Всего в списке было порядка 20 000 записей.

Немного попользовавшись поиском, нашел подходящий PowerShell-скрипт. Он правда сразу удалял найденные дубликаты, я в него добавил строчку, чтобы сначала можно было посмотреть на найденные записи – может их и не стоит удалять.

 Add-PSSnapin microsoft.sharepoint.powershell 
    $web = Get-SPWeb -Identity http://spdev/vc 
    $list = $web.Lists["companies"] 

    $AllDuplicates = $list.Items.GetDataTable() | Group-Object title | where {$_.count -gt 1} 
    $count = 1 
    $max = $AllDuplicates.Count 
    foreach($duplicate in $AllDuplicates) 
    { 
    	#раскомментируйте строчку ниже для удаления повторяющихся записей
        #$duplicate.group | Select-Object -Skip 1 | % {$list.GetItemById($_.ID).Delete()} 
    	#строчка ниже выводит на экран информацию об обнаруженных повторяющихся записях
    	Write-Host $duplicate.Name 
    } 
Remove-PsSnapin Microsoft.SharePoint.PowerShell