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

[玩转系统] 使用 PowerShell 从 SharePoint 获取列表项的 CAML 查询

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

使用 PowerShell 从 SharePoint 获取列表项的 CAML 查询


CAML 代表协作应用程序标记语言。它是一种基于 XML 的查询语言,用于查询 SharePoint 中的数据。

如何在PowerShell中使用CAML查询?

我们创建一个 CAML 查询并传递一个 SPQuery 对象以从该对象中检索已过滤的列表项。这是在 PowerShell 中使用 CAML 查询的基本示例 - 让我们从项目列表中获取所有“活动”项目。

SharePoint PowerShell CAML 查询示例

我们可以使用 CAML 查询来过滤和检索 SharePoint 中的数据。以下是如何在 PowerShell 中使用 CAML 查询:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Set config variables
$WebURL="https://intranet.crescent.com/"
$ListName ="Projects"

#Get Web and List Objects
$Web = Get-SPWeb $WebURL
$List = $Web.Lists[$ListName]

#Define the CAML Query
$Query = New-Object Microsoft.SharePoint.SPQuery
$Query.Query = "@
<Where>
    <Eq>
        <FieldRef Name='Status' />
        <Value Type='Choice'>Active</Value>
    </Eq>
</Where>"

#Get List Items matching the query
$ListItems = $List.GetItems($Query)

Write-host "Total Number of Items: "$ListItems.count

#Loop through Each Item
ForEach($Item in $ListItems) 
{
    #Do something
    Write-host $Item["Title"]
}

为什么我们应该使用 CAML 来过滤列表项?
那么,我们可以将列表项过滤为:


$ListItems = $List.Items | Where {$_["Status"] -eq "Active"}

但是,强烈建议使用 CAML。使用 CAML 查询从 SharePoint 列表或文档库获取项目有利于提高性能!

SharePoint CAML 查询生成器工具
有一些工具可用于生成 CAML 查询。我最喜欢的 CAML 查询生成器是 U2U CAML 查询生成器和 CAML Designer 2013,它们可与 SharePoint On-premises 和 SharePoint Online 配合使用。

这是我在 SharePoint Online 上发表的关于如何通过 PowerShell 使用 CAML 查询的另一篇文章:PowerShell 中的 SharePoint Online CAML 查询

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

取消回复欢迎 发表评论:

关灯