Сегодня был неприятно удивлен тем, что обнаружил повторяющиеся записи в том списке 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