Automatizzare il download dei "Popularity trends" di SharePoint
Con PowerShell è possibile automatizzare il download dei Popularity trends di ogni singolo item di una lista SharePoint
il codice è il seguente:
andrà eseguito passando la url del web e il titolo della lista:
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:
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()
PowerShell
.\SgartDownloadPopularityTrends.ps1 https://sharepoint.sgart.local SharedDoc
I reports salvati saranno simili al seguente: