Как гласит заголовок, я пытаюсь сгенерировать отчет (CSV) с использованием powershell, который выводит имена любых представлений с более чем 5000 элементов и их количество элементов.
Список / Имя библиотеки, ПредставлениеName, View item Count
У меня есть скрипт, который отлично работает для любых представлений с <5000 элементами, но достигает порогового значения представления списка при работе с большими списками.Я понимаю, почему это не удается, но я не знаю, как обойти эту проблему.Есть ли способ разбить на страницы результаты и просмотреть их, не редактируя представление каким-либо образом, или другим способом, позволяющим мне получить желаемый результат? </p>
Спасибо:
#Loop through each web in the current site collection
foreach($Web in $SiteCollectionContext.Web.Webs)
{
$webContext= New-Object Microsoft.SharePoint.Client.ClientContext($Web.Url)
$webContext.Credentials = $Credentials
$webContext.Load($webContext.Web)
$webContext.Load($webContext.Web.Lists)
$webContext.ExecuteQuery()
#Loop through each List
foreach($List in $webContext.Web.Lists)
{
if($List.ItemCount -gt 5000){
$li=$webContext.Web.Lists.GetByTitle($List.Title)
$webContext.load($li)
$webContext.load($li.RootFolder)
$webContext.load($li.Views)
$webContext.ExecuteQuery()
#Loop through all of the views on the current list
foreach($view in $li.Views){
#Use the current view's query filter for our request
$viewQuery = new-object Microsoft.SharePoint.Client.CamlQuery;
$viewQuery.ViewXml = ("<View><Query>{0}</Query></View>" -f $view.Query)
$largeView = $li.GetItems($viewQuery)
$webContext.load($largeView)
$webContext.ExecuteQuery()
#############################################FAILS HERE
$viewcount = $largeView.Count
if($viewcount -gt 5000){
#Do stuff to output to CSV
}
}
}
}
}