Un esempio di come visualizzare i file di una document library
SharePoint usando
PnP PowerShell tramite il comando
Get-PnPListItem# connessione a SharePoint
Connect-PnPOnline -Url https://xxxx.sharepoint.com/sites/crisismanagement -UseWebLogin
# recupero degli items della document library
Get-PnPListItem -List Documents
Id Title GUID
-- ----- ----
1 30848b7d-ce44-4441-954f-a951b10c22f8
2 23487a2d-949b-4c2f-9fe2-e0b84dcfd495
come si vede di default vengono ritornati solo i campi
Id,
Title e
GUID.
Per ritornare dei campi diversi, questi vanno esplicitamente indicati tramite
Fields# connessione a SharePoint
Get-PnPListItem -List Documents -Fields "Title", "FileRef", "FileLeafRef"
Id Title GUID
-- ----- ----
1
2
anche in questo caso i campi ritornati sono gli stessi, anche se il campo
GUID è blank. Questo perché non è stato esplicitamente richiesto in
Fields.
L'accesso agli altri campi lo si può fare con
FieldValues# connessione a SharePoint
$items = Get-PnPListItem -List Documents -Fields "Title", "FileRef", "FileLeafRef"
$items.FieldValues
Key Value
--- -----
Title
FileRef /sites/crisismanagement/Shared Documents/Ricevuta_2427006.pdf
FileLeafRef Ricevuta_2427006.pdf
MetaInfo vti_parserversion:SR|16.0.0.20711...
_ModerationStatus 0
_Level 1
Last_x0020_Modified 2020-11-28T17:09:34Z
ID 1
UniqueId fd53636c-40ac-4cf7-a2fc-bf595787f652
owshiddenversion 3
FSObjType 0
Created_x0020_Date 2020-11-28T17:08:20Z
ProgId
Modified 28/11/2020 17:09:34
HTML_x0020_File_x0020_Type
CheckoutUser
ScopeId {B7689A97-789F-4B98-B7C0-9007FDF3755E}
Editor Microsoft.SharePoint.Client.FieldUserValue
Title
FileRef /sites/crisismanagement/Shared Documents/Ricevuta_2427004.pdf
FileLeafRef Ricevuta_2427004.pdf
MetaInfo vti_parserversion:SR|16.0.0.20711...
_ModerationStatus 0
_Level 1
Last_x0020_Modified 2020-11-28T17:09:02Z
ID 2
UniqueId db7f7d9c-50a1-4938-9e86-a7056cdd27e1
owshiddenversion 2
FSObjType 0
Created_x0020_Date 2020-11-28T17:08:23Z
ProgId
Modified 28/11/2020 17:09:02
HTML_x0020_File_x0020_Type
CheckoutUser
ScopeId {B7689A97-789F-4B98-B7C0-9007FDF3755E}
Editor Microsoft.SharePoint.Client.FieldUserValue
che ritorna una collection
key/
value.
In altrenativa si può usare
ForEach-Object per accedere in modo puntuale ad ogni singolo campo
$items = Get-PnPListItem -List Documents -Fields "Title", "FileRef", "FileLeafRef"
$items | ForEach-Object {
$fileLeafRef = $_["FileLeafRef"]
$fileRef = $_["FileRef"]
Write-host "fileLeafRef = $fileLeafRef , fileRef = $fileRef"
}
fileLeafRef = Ricevuta_2427006.pdf , fileRef = /sites/crisismanagement/Shared Documents/Ricevuta_2427006.pdf
fileLeafRef = Ricevuta_2427004.pdf , fileRef = /sites/crisismanagement/Shared Documents/Ricevuta_2427004.pdf
Con lo stesso comando posso accedere direttamente ad uno specifico item sia per
Id che per
GUID# tramite Id
$items = Get-PnPListItem -List Documents -Id 1
#tramite guid
$items = Get-PnPListItem -List Documents -UniqueId 30848b7d-ce44-4441-954f-a951b10c22f8
oppure eseguire una
query CAML$queryCaml = @"
<View>
<ViewFields>
<FieldRef Name='Title'/>
<FieldRef Name='Modified'/>
</ViewFields>
<Query>
<Where>
<Eq>
<FieldRef Name='ID'/><Value Type='Counter'>1</Value>
</Eq>
</Where>
</Query>
</View>
"@
$items = Get-PnPListItem -List Documents -Query $queryCaml
Attenzione nella query
CAML il campo
Id va indicato in maiuscolo
ID