Сегодня решил рассмотреть вариант поиска больших списков с помошью PowerShell
Наткнувшийсь на итересную статью (спасибо автору), решил ее до работать. Нужно было сделать решение более универсальным.
Для этого добавил возможность пройти по нескольким семействам сайтов (указываем в переменной $arraySite) и выводить только те списки и библиотеки в которых количесво элементов больше требуемого (указываем нужное значение переменной $maxvalue ).
Теперь перейдем к коду:
Наткнувшийсь на итересную статью (спасибо автору), решил ее до работать. Нужно было сделать решение более универсальным.
Для этого добавил возможность пройти по нескольким семействам сайтов (указываем в переменной $arraySite) и выводить только те списки и библиотеки в которых количесво элементов больше требуемого (указываем нужное значение переменной $maxvalue ).
Теперь перейдем к коду:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 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 |
Комментариев нет:
Отправить комментарий