Una delle opzioni che mancano all'interfaccia web di SharePoint è quella di nascondere una lista dall'elenco delle liste disponibili all’interno di un sito.
Quella di nascondere una lista dall'interfaccia di default di SharePoint è una prassi comune per tutte quelle liste che solitamente vengono utilizzate per la configurazione di applicazioni o per altri scopi amministrativi.
Come dicevamo in uno dei precedenti post, per effettuare operazioni di questo tipo su contenuti che stanno all'interno di una sito SharePoint Online abbiamo la possibilità di sfruttare le classi del Client Object Model all'interno di uno script Powershell.
Questo lo script da lanciare.

$username = "yourusername@yourdomain.onmicrosoft.com" 
$password = "yourpassword" 
$url = "https://dev4side.sharepoint.com"
$listName = "your list name"
$securePassword = ConvertTo-SecureString $Password -AsPlainText -Force 
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"
$context = New-Object Microsoft.SharePoint.Client.ClientContext($url) 
$credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username, $securePassword) 
$context.Credentials = $credentials 
$list = $context.Web.Lists.GetByTitle($listName)
$list.Hidden = $true
$list.Update()
$context.ExecuteQuery()
Write-Host "List hidden correctly!" -ForegroundColor Green

Vi ricordo che per poter eseguire questo script, è necessario:
- Scaricare le librerie aggiornate del Client Object Model
- Disporre di username e password di un utente che ha permessi di Full Control sulla lista che volete nascondere

Il medesimo codice, lasciando perdere il passaggio delle credenziali all’oggetto ClientContext, può essere eseguito on premise su farm SharePoint 2013 per raggiungere lo stesso risultato.

Spero vi possa essere utile.