获取超过5000个项目的Sharepoint列表Sharepoint Online Powershell

时间:2018-04-23 09:35:20

标签: list powershell sharepoint-online

你能帮我在sharepoint在线获取一个powershell脚本,它将获得超过5000个项目的所有列表吗? TYIA!

1 个答案:

答案 0 :(得分:0)

以下PowerShell脚本供您参考:

Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"

$SiteURL="https://xx.sharepoint.com/sites/lz"
$UserName="lz@xx.onmicrosoft.com"
$Password = "xx"
$listName ="customlist"
$rowLimit=100

$SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
$Creds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName,$SecurePassword)

#Bind to Site Collection
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$ctx.Credentials = $Creds

$list = $ctx.Web.Lists.GetByTitle($listName)
$ctx.Load($list)

# Prepare the query
$query = New-Object Microsoft.SharePoint.Client.CamlQuery
$query.ViewXml = "<View>
        <RowLimit>$rowLimit</RowLimit>
</View>"

# An array to hold all of the ListItems
$items = @()

# Get Items from the List until we reach the end
do
{
    $listItems = $list.getItems($query)
    $ctx.Load($listItems)
    $ctx.ExecuteQuery()
    $query.ListItemCollectionPosition = $listItems.ListItemCollectionPosition

    foreach($item in $listItems)
    {
        Try
        {
            # Add each item
            $items += $item
        }
        Catch [System.Exception]
        {
            # This shouldn't happen, but just in case
            Write-Host $_.Exception.Message
        }
    }
}While($query.ListItemCollectionPosition -ne $null)