SharePoint and Large Lists
# a colleague recently posted an incredibly useful bit of code
# which can show us those potentially problematic Large Lists.
# enjoy!
param( $PathToSitesFolder = "." )
function fnLargeListsFromSubWebs {
param( [Parameter(ValueFromPipeline=$true,Mandatory=$true)] $ParentWeb )
process {
$largeLists = $ParentWeb.SPListCollection.SPList | ? { [int] ($_.ItemCount) -ge 2000 }
if ($largeLists) {
$largeLists | % { $_ | Add-Member -MemberType NoteProperty -Name Url -Value $ParentWeb.Url }
Write-Output $largeLists
}
if ($ParentWeb.SPWebCollection.SPWeb) {
$ParentWeb.SPWebCollection.SPWeb | fnLargeListsFromSubWebs
}
}
}
$xmls = @()
Get-ChildItem $PathToSitesFolder\*.site | % { $xmls += [xml] (Get-Content $_.FullName) }
$lists = foreach ( $xml in $xmls ) {
$xml.SPSite.SPWebCollection.SPWeb | fnLargeListsFromSubwebs
}
$lists | Sort-Object Url | Select-Object Title, ItemCount, Url, ParentWebUrl, DefaultViewUrl | Export-Csv $PathToSitesFolder\LargeLists.csv -NoTypeInformation