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

[玩转系统] PowerShell-CAML SPQuery 根据人员或组字段值过滤列表项

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

PowerShell-CAML SPQuery 根据人员或组字段值过滤列表项


要求:
在项目跟踪 SharePoint 列表中,想要快速获取特定用户被列为项目经理 - 人员或组(人员选择器)字段的项目列表。

解决方案:将 SPQuery 与 PowerShell 结合使用,如下例所示。

PowerShell 根据人员或组字段过滤列表项:


Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

#Configuration parameters
$SiteURL = "https://portal.crescent.com/projectpipeline/"
$ListName = "Projects"
$FieldName= "ProjectManager"
$UserAccount="Crescent\Omar"

#Get the User Account
$User = Get-SPUser -Identity $UserAccount -Web $SiteURL

#Query to filter List Items which contains user account
$SPQuery = new-object Microsoft.SharePoint.SPQuery
$Query = "<Where><Eq><FieldRef Name='ProjectManager' LookupId='TRUE'/><Value Type='User'>$($User.ID)</Value></Eq></Where>"
$SPQuery.Query=$Query

#Get site and List objects
$web = Get-SPWeb $SiteURL
$List = $web.Lists.TryGetList($ListName)

#Filter List Items by Query
$ListItems = $List.GetItems($SPQuery)
foreach($item in $ListItems)
{
    write-host $Item["ProjectName"]
}
write-host "Total Number of Projects Found:" $ListItems.Count

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

取消回复欢迎 发表评论:

关灯