Con PowerShell è possibile automatizzare il download dei Popularity trends di ogni singolo item di una lista SharePoint
il codice è il seguente:

PowerShell

# File: SgartDownloadPopularityTrends.ps1
# download dei Popularity trends di ogni singolo item
# https://www.sgart.it
Param ($webUrl,$listTile)

if((Get-PSSnapin | ?{$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {write-host "Loading..."; Add-PSSnapin Microsoft.SharePoint.PowerShell }

#$webUrl = "https://sharepoint.sgart.local/";
#$listTile = "SharedDoc"

$wc = new-object System.Net.WebClient

# passo le credenziali del'utente corrente
$wc.Credentials=[System.Net.CredentialCache]::DefaultCredentials

$web = Get-SPWeb $webUrl 
if($web -eq $null) {
    Write-Error "Web non trovato ($webUrl)"
    return
}
Write-Output "Web: $($web.url)"

$list = $web.lists[$listTile]
if($list -eq $null) {
    Write-Error "Lista non trovata ($listTile)"
    return
}
Write-Output "List: $($list.title)"

$items = $list.Items
$t = $items.count
$i=0;
$items | % {
    $item=$_ 
    
    #costruisco la url di download dei "Popularity Trends" del singolo file
    $url ="$($web.url)/_layouts/15/reporting.aspx?Category=Analytics&List=$($list.id)&ID=$($item.id)"
    
    #costruisco il nome file con cui verrà salvato su file system
    # (salvo nella directory corrente $pwd)
    $filename = "$pwd\$($item.name).xlsx"

    Write-Output "$i / $t ) $url -> $fileName"

    # scarico e salvo il file
    $wc.DownloadFile($url, $filename) 
    
    $i++
}
$wc.Dispose()
andrà eseguito passando la url del web e il titolo della lista:

PowerShell

.\SgartDownloadPopularityTrends.ps1 https://sharepoint.sgart.local SharedDoc
i file verranno salvati nella stessa directory dove si trova lo script e avranno lo stesso nome del file con l'aggiunta dell'estensione .xlxs (es. vendite2017.docx.xlxs).

I reports salvati saranno simili al seguente:
Tags:
PowerShell200 SharePoint498 SharePoint 2013137
Potrebbe interessarti anche: