Un esempio di come visualizzare i file di una document library SharePoint usando PnP PowerShell tramite il comando Get-PnPListItem

PowerShell

# connessione a SharePoint
Connect-PnPOnline -Url https://xxxx.sharepoint.com/sites/crisismanagement -UseWebLogin

# recupero degli items della document library
Get-PnPListItem -List Documents

Text

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

PowerShell

# connessione a SharePoint
Get-PnPListItem -List Documents -Fields "Title", "FileRef", "FileLeafRef"

Text

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

PowerShell

# connessione a SharePoint
$items = Get-PnPListItem -List Documents -Fields "Title", "FileRef", "FileLeafRef"
$items.FieldValues

Text

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

PowerShell

$items = Get-PnPListItem -List Documents -Fields "Title", "FileRef", "FileLeafRef"

$items | ForEach-Object {
  $fileLeafRef = $_["FileLeafRef"]
  $fileRef = $_["FileRef"]

  Write-host "fileLeafRef = $fileLeafRef , fileRef = $fileRef"
}

Text

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

PowerShell

# 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

PowerShell

$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
Tags:
PowerShell200 SharePoint498 SharePoint 2013137 SharePoint 201668 SharePoint 201918 SharePoint Online75
Potrebbe interessarti anche: