SharePoint Online Automation: caricare i file locali su SharePoint usando PowerShell
In questo post, andiamo ad esplorare Office 365 SharePoint Online.
In particolare, vedremo come caricare i vostri file da infrastrutture locali alle document library di SharePoint utilizzando PowerShell in SharePoint Online Office 365.
Si tratta di query molto comuni ed esigenze spesso avanzate dagli Amministratori che hanno bisogno di caricare i file archiviati in sistemi locali, sui siti SharePoint.
Come fare?
Aprite Windows PowerShell con diritti da Admin e copiateci lo script seguente.
Questo comando vi permette di caricare un file all’interno della SharePoint document library
A questo punto, dobbiamo aggiornare i seguenti dettagli:
– $User= nome utente del vostro account di Office 365
– $Password= password del vostro account
– $Site URL= URL di SharePoint Online in cui volete copiare o spostare un documento
– $Folder= location di destinazione.
$DocLibName= Il nome della Document Library in cui volete copiare i file provenienti dal sistema locale
#Specificate l’amministratore del tenant e l’URL del sito
$User=”vostro id”
$Password=”vostra password”
$SiteURL=”URL del sito/”
$Folder=”C:\Script\test”#percorso in cui volete copiare il file
$DocLibName=”Documenti”#Docs library
#Aggiungete i riferimenti ai gruppi di client SharePoint ed autenticatevi sul sito di Office 365 – necessario per CSON
Add-Type-Path”C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll”
Add-Type-Path”C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll”
#Collegatevi alla site collection
$Context=New-ObjectMicrosoft.SharePoint.Client.ClientContext($SiteURL)
$Creds=New-ObjectMicrosoft.SharePoint.Client.SharePointOnlineCredentials($User,(ConvertTo-SecureString$Password-AsPlainText-Force))
$Context.Credentials=$Creds
#Recuperate la lista
$List=$Context.Web.Lists.GetByTitle($DocLibName)
$Context.Load($List)
$Context.ExecuteQuery()
#Caricate i file
Foreach ($Filein (dir$Folder-File))
{
$FileStream=New-ObjectIO.FileStream($File.FullName,[System.IO.FileMode]::Open)
$FileCreationInfo=New-ObjectMicrosoft.SharePoint.Client.FileCreationInformation
$FileCreationInfo.Overwrite=$true
$FileCreationInfo.ContentStream=$FileStream
$FileCreationInfo.URL =$File
$Upload=$List.RootFolder.Files.Add($FileCreationInfo)
$Context.Load($Upload)
$Context.ExecuteQuery()
}
Salvate lo script qui sopra una volta effettuati tutti i cambiamenti.
In questo script, come potete vedere, è stata aggiunta la voce Add-Type -path che si riferisce ai file di riferimento di SharePoint Online Management Shell.
Inoltre, per evitare errori, vi consigliamo di seguire i seguenti passaggi.
– Assicuratevi che il componente SDK di SharePoint client sia installato sulla macchina utente. Se così non fosse, scaricate il file eseguibile (SharePoint Server 2013 Client Components SDK) ed installatelo nel vostro sistema locale;
– I percorsi SharePoint.Client.dll e Microsoft.SharePoint.Client.Runtime.dll menzionati nello script sono i medesimi della macchina utente;
– Impostate le “execution policies” per PowerShell nella macchina utente, eseguendo il Remote signed.
Eseguite ExecutionPolicyRemotesigned.
Una volta verificati tutti i pre-requisiti, siete pronti per eseguire lo script che caricherà il vostro file dal sistema locale al sito SharePoint all’interno di una document library.
A questo punto, cliccate F5 ed aspettate qualche istante per far sì che tutti i file copiati dal sistema locale vengano caricati su SharePoint Online Document Library.
Qui sotto vi mettiamo i link ad alcuni tutorial su SharePoint e PowerShell:
– Getting Started with PnP PowerShell – SharePoint 2013/2016/SharePoint Online
– Bulk SharePoint Online Site Collection Creation using PowerShell
– PowerShell Script to deploy WSP Solution in SharePoint 2013
– Working with PowerShell in SharePoint Online/2016/2013
– Working with PowerShell Variables
– SharePoint 2016 PowerShell Script to list all Users in Site Collection
– Create a web application in SharePoint 2016 from Central Administration and using PowerShell
– SharePoint 2013 backup and restore using PowerShell
– Retrieve List Items Created in Last N days using PowerShell SharePoint Online
– Delete list items created before N days using PowerShell in SharePoint Online