当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] SharePoint Online:用于读取列表项目的 PowerShell

作者:精品下载站 日期:2024-12-14 15:21:35 浏览:16 分类:玩电脑

SharePoint Online:用于读取列表项目的 PowerShell


要求:PowerShell 读取 SharePoint Online 中的列表项。

[玩转系统] SharePoint Online:用于读取列表项目的 PowerShell

SharePoint Online:使用 PowerShell 读取列表项目

在这篇博文中,我们将介绍如何使用 PowerShell 读取 SharePoint Online 中的列表项。我们将介绍使用 PowerShell 连接到 SharePoint Online 的基础知识,然后演练一些有关从 SharePoint Online 列表读取数据的脚本示例。读完本文后,您应该了解如何开始将 PowerShell 与 SharePoint Online 实例结合使用。快乐的脚本编写!

您可以通过以下三个简单步骤使用 PowerShell 读取 SharePoint Online 列表:

第 1 步:连接到 SharePoint Online 网站

首先,我们需要 SharePoint Online 网站的连接上下文。


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
   
#Variables for Processing
$SiteUrl = "https://crescent.sharepoint.com/"
  
#Get Credentials to connect
$Cred = Get-Credential

#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)

步骤 2:从 SharePoint Online 列表获取列表项

建立连接后,我们可以从 SharePoint Online 站点读取或更新任何对象。以下是如何使用 PowerShell 从 SharePoint Online 列表获取数据。


#List Name Variable
$ListName = "Projects"
 
#Get the list
$List = $Ctx.Web.Lists.GetByTitle($ListName)
 
#Read All Items from the list
$ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()
Write-host "Total Number of Items Found in the List:"$ListItems.Count

步骤 3:循环遍历列表项集合以读取列表项

一旦我们获得了列表项集合,我们就可以通过迭代每个项目来读取列表项。


#Iterate through List Items
ForEach($Item in $ListItems)
{
    #sharepoint online powershell read list items 
    Write-Host ("List Item ID:{0} - Title:{1}" -f $Item["ID"], $Item["Title"])
}

PowerShell 读取 SharePoint Online 列表

以下是读取 SharePoint Online 列表项目的完整 PowerShell 脚本:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
   
#Variables for Processing
$SiteUrl = "https://crescent.sharepoint.com/"
$ListName = "Projects"
  
#Get Credentials to connect
$Cred = Get-Credential

#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)
 
#Get the list
$List = $Ctx.Web.Lists.GetByTitle($ListName)
 
#sharepoint online powershell read list items
$ListItems = $List.GetItems([Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery())
$Ctx.Load($ListItems)
$Ctx.ExecuteQuery()
Write-host "Total Number of Items Found in the List:"$ListItems.Count

#Iterate through List Items
ForEach($Item in $ListItems)
{
    #sharepoint online powershell read list items 
    Write-Host ("List Item ID:{0} - Title:{1}" -f $Item["ID"], $Item["Title"])
}

假设您有一个包含 > 5000 个项目的大型列表。在这种情况下,您可能必须批处理列表项以避免限制问题:尝试的操作被禁止,因为它超出了管理员强制执行的列表视图阈值。” PowerShell 从 SharePoint Online 中的大型列表(> 5000 项)获取所有列表项

使用 PnP PowerShell 读取列表项

通过 PnP PowerShell 从 SharePoint Online 列表获取数据要简单得多!以下是用于从 SharePoint Online 列表获取列表项的 PnP PowerShell:


#Config Variables
$SiteURL="https://crescent.sharepoint.com/sites/marketing"
$ListName= "Projects"
 
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Interactive
 
#PnP powershell to get list items 
$ListItems = Get-PnPListItem -List $ListName -PageSize 2000
 
#Iterate through each Item in the list
foreach($ListItem in $ListItems)
{  
    Write-Host "Title:" $ListItem["Title"] 
}

总之,按照本文概述的步骤,您可以轻松阅读 SharePoint Online 中的列表项并使用这些信息执行各种任务,例如创建报告。如果要将 SharePoint Online 列表项目导出到 Excel,请使用:使用 PowerShell 将 SharePoint Online 列表项目导出到 CSV

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯