Сегодня решил рассмотреть вариант поиска больших списков с помошью PowerShell
Наткнувшийсь на итересную статью (спасибо автору), решил ее до работать. Нужно было сделать решение более универсальным.
Для этого добавил возможность пройти по нескольким семействам сайтов (указываем в переменной $arraySite) и выводить только те списки и библиотеки в которых количесво элементов больше требуемого (указываем нужное значение переменной $maxvalue ).
Теперь перейдем к коду:
Наткнувшийсь на итересную статью (спасибо автору), решил ее до работать. Нужно было сделать решение более универсальным.
Для этого добавил возможность пройти по нескольким семействам сайтов (указываем в переменной $arraySite) и выводить только те списки и библиотеки в которых количесво элементов больше требуемого (указываем нужное значение переменной $maxvalue ).
Теперь перейдем к коду:
cls
if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {
Add-PSSnapin Microsoft.SharePoint.PowerShell;
}
#Перечень семейств сайтов в которых нужно найти списки, адреса через запятую
$arraySite =
"http://server/ SiteCollection1",
"http://server/ SiteCollection2"
$maxvalue = 2000 #максимальное количество элементов списка
$ListsInfo = @{}
$TotalItems = 0
Foreach ($currentSite in $arraySite)
{
$SiteCollection = Get-SPSite $currentSite
ForEach ($Site in $SiteCollection.AllWebs)
{
ForEach ($List in $Site.Lists)
{
if ($List.ItemCount -gt $maxvalue)
{
$ListsInfo.Add($Site.Url + " - " + $List.Title, $List.ItemCount)
$TotalItems += $List.ItemCount
}
}
}
}
$ListsInfo.GetEnumerator() | sort name | Format-Table -Autosize
Write-Host "Количество списков: " $ListsInfo.Count
Write-Host "Общее количество элементов: " $TotalItems
Комментариев нет:
Отправить комментарий