我正在尝试检索列表中的所有项目,并且每个项目都会在控制台上显示项目标题,ID和已创建的字段。此外,当我在Items集合上执行get-member
时,我看不到列表中的所有字段(甚至不是标题字段,只有ID和其他我不相信的字段非常像DisplayName
)
我原以为caml
查询只会选择要显示的字段,但我在Caml
查询中指定的项目都没有显示在get-Member
上
任何人都可以帮助发现我可能做错的事情
Add-Type –Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type –Path "C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
Function Get-SPOContext([string]$Url,[string]$UserName,$Password)
{
#$SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
$context = New-Object Microsoft.SharePoint.Client.ClientContext($Url)
$context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $Password)
return $context
}
Function Get-ListItems([Microsoft.SharePoint.Client.ClientContext]$Context, [String]$ListTitle) {
$list = $Context.Web.Lists.GetByTitle($listTitle)
$qry = [Microsoft.SharePoint.Client.CamlQuery]::CreateAllItemsQuery(13,'ID','Created','Modified','Title')
$items = $list.GetItems($qry)
$Context.Load($items)
$Context.ExecuteQuery()
return $items
}
$UserName = "john.doe@sharepointonline.co.uk"
$Password = Read-Host -Prompt "Enter password" -AsSecureString
$Url = "https://mycompany.sharepoint.com/sites/COP/SharePoint/john"
$context = Get-SPOContext -Url $Url -UserName $UserName -Password $Password
$items = Get-ListItems -Context $context -ListTitle "NPT Form"
foreach($item in $items)
{
$item.Id
$item | gm
}
答案 0 :(得分:3)
你非常接近没有做错任何事。您要查找的属性实际存储在字典FieldValues
中。当您对Items集合执行get-member
时,将列出此项。
可以使用以下列出特征:
$item.FieldValues
可以使用以下方法访问标题:
$item["Title"]
$item.FieldsValues.Title