2017-08-19 9 views
0

J'essaie de récupérer tous les éléments de ma liste et pour chaque élément afficher le titre de l'élément, l'ID et les champs créés sur la console. Aussi quand je fais un get-member sur la collection d'articles je ne vois pas tous les champs dans la liste (pas même le champ de titre, seulement l'identification et quelques autres champs que je ne crois pas sont très utilisés comme DisplayName)Accédez à tous les champs d'une liste en utilisant powershell, SharePoint et csom

J'aurais pensé que la requête caml ne sélectionnera les champs à afficher, mais aucun des éléments que je spécifiés sur ma Caml requête montrent des signes sur get-Member

S'il vous plaît quelqu'un peut-il aider à repérer ce que je peux faire mal

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 = "[email protected]" 
 
$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 
 
}

Répondre

1

Vous êtes très proche de ne rien faire de mal. Les propriétés que vous recherchez sont actuellement stockées dans le dictionnaire FieldValues. Cela sera répertorié lorsque vous effectuez get-member dans la collection Articles.

Les bienséances peuvent être indiquées à l'aide:

$item.FieldValues 

et peut être consulté en utilisant les méthodes suivantes, pour le titre:

$item["Title"] 
$item.FieldsValues.Title