Come connettere PowerShell a SharePoint Online
PowerShell è un potente strumento per l'automazione in serie, progettato per aiutare il reparto IT di un'azienda a manipolare e coordinare le operazioni alla base di un sistema operativo, di un'applicazione o di una pagina web. Come?
Con i famosi cmdlet e i loro moduli preconfigurati.
Tra cui spicca quello dedicato a SharePoint Online.
Scopriamo insieme tutti i dettagli.
PowerShell: cos’è e a cosa serve
Automazione e scripting: così potremmo riassumere, in poche parole, cos’è PowerShell.
Questa piattaforma è stata infatti creata da Microsoft per aiutare i team IT a automatizzare i processi inerenti alle risorse informatiche di un’azienda usando script e comandi personalizzati.
È quindi uno strumento diretto agli utenti esperti di programmazione che non vogliono perdere tempo nel creare automazioni manualmente, una per una, e partendo sempre da zero.
Al contrario, vogliono rendere automatiche attività come l’installazione di app, la configurazione dei server o la gestione delle raccolte dei siti SharePoint in serie.
Se anche voi condividete questo obiettivo, o se avete semplicemente la curiosità di sapere cosa può fare PowerShell per il vostro business, siete nell’articolo.
Cos'è intranet.ai?
intranet.ai è la intranet aziendale pronta all'uso, progettata per ridurre i costi e i tempi di implementazione, e realizzare così un ambiente di lavoro digitale collaborativo e moderno:
- Prezzo iniziale di 3.650 €/anno per una intranet completa
- 50+ applicazioni, tra cui la ricerca avanzata, il sistema di gestione documentale, le notizie,
le notifiche push via Teams, il profilo personale e le FAQ - 100% integrata con SharePoint Online e Microsoft 365
Prima di vedere quali sono le principali caratteristiche del prodotto, vogliamo fare un piccolo chiarimento, che per alcuni di voi potrebbe sembrare scontato.
Intendiamo dire che PowerShell non ha nulla a che spartire con Power Automate, non fosse che per lo scopo di creare automazioni.
Di fatto, PowerShell si caratterizza per una natura duale, che prevede l’essere un linguaggio di scripting così come un motore per l’automazione orientato agli oggetti.
È quindi uno strumento che viene generalmente usato dagli admin di sistema per gestire server, rete, app, siti e servizi web aziendali, rendendo automatici i processi su cui queste risorse si basano.
Dal canto suo, Power Automate consente di creare flussi di lavoro cloud senza ricorrere alla scrittura di codice e finalizzati all’integrazione delle funzionalità dei tool Microsoft, così come di strumenti di terze parti.
Dunque, potreste costruire workflow capaci di collezionare gli allegati delle vostre mail, per poi archiviarli in una determinata libreria di SharePoint senza mai dover accedere a Outlook.
Un altro esempio potrebbe essere quello di rendere automatico l’invio di notifiche nei vostri gruppi e canali di Teams ogni volta che viene pubblicata un post in un sito SharePoint o in una pagina social.
O ancora, potreste creare un flusso per gestire l’approvazione dei nuovi documenti caricati in archivio.
Come potete notare, Power Automate riserva le migliori sorprese quando si tratta di automatizzare i siti e, soprattutto, le liste e librerie di SharePoint.
Ma non andremo oltre con i dettagli in questa sede.
Per approfondire l’argomento, vi rimandiamo alla lettura del nostro articolo
sui workflow per SharePoint Online.
Dopo questa breve, ma necessaria premessa, possiamo addentrarci nei meandri di PowerShell per scoprire quali altri caratteristiche lo differenziano dai comuni tool per l’automazione e lo rendono quindi un asset interessante con cui dotare il vostro team IT.
Quali sono le caratteristiche principali di PowerShell
Come anticipato nello scorso capitolo, PowerShell costituisce sia un linguaggio di scripting che una piattaforma destinata all’automazione di sistemi operativi, in particolar modo, ma anche di applicazioni e pagine web.
Riguardo i sistemi operativi, occorre sottolineare che un grande vantaggio di PowerShell è di potersi adattare alle principali piattaforme (Windows, Linux e macOS) senza problemi.
Per raggiungere il suo obiettivo, fa leva sul framework .NET, che gli permette di mettere a disposizione degli utenti diverse modalità con cui creare le proprie automazioni. Tra queste, troviamo:
- Cmdlet.
- Script.
- File eseguibili.
- Classi .NET standard.
Una breve parentesi deve essere aperta per i primi.
I cmdlet (pronunciati “command-let”) rappresentano infatti gli elementi più caratteristici di PowerShell, e i più comunemente usati dagli utenti.
Nello specifico, sono comandi leggeri e specializzati, dato che ciascuno di loro rispetta una sintassi semplice (Verbo-Sostantivo) e standardizzata che fa riferimento a una singola operazione. Alcuni esempi possono essere “Get-Llocation”, “Move-Item” e “Remove-Item”.
Tuttavia, i cmdlet possono essere combinati per creare script personalizzati secondo le logiche del “pipelining”, la funzione che permette di trasformare l’output di un comando nell’input di un altro e che, in PowerShell, lascia fluire oggetti da un cmdlet al successivo.
Il risultato del pipelining (indicato dal simbolo “|”) è una reazione a catena che consente agli utenti di ottenere soluzioni più sofisticate e di elaborare dati più complessi.
Se pensate poi che PowerShell dispone di oltre 200 cmdlet, è evidente come queste catene possano svilupparsi in termini di dimensione e di personalizzazione, potendo contare anche sull’uso di espressioni condizionali, switch (usati per sostituire un lungo susseguirsi di condizioni if/then/else), loop e variabili.
Inoltre, nonostante i cmdlet siano piuttosto auto-esplicativi, come abbiamo visto, questi vengono accompagnati da una propria documentazione, a cui potete accedere direttamente all’interno della piattaforma.
Oppure, potete usare il comando “Get-Help”, seguito da “online”, per recuperare gli articoli web che trattano del comando o della funzione che state cercando.
In questo modo, sarà più semplice per gli utenti meno esperti imparare le diverse componenti del sistema e come utilizzarle per le proprie automazioni.
Ma non è tutto.
Esistono altri due aspetti di grande importanza che dobbiamo ancora esplorare per completare la nostra panoramica.
Il primo riguarda la possibilità di utilizzare PowerShell da remoto.
Di fatto, gli utenti possono avviare comandi e script da computer remoti, facendo leva sul protocollo WS-Management oppure su Windows Management Instrumentation.
Senza dilungarci troppo, sappiate solo che il WS-Management è il protocollo sviluppato dal DMTF (Distributed Management Task Force), di cui fa parte ovviamente anche Microsoft, per poter gestire e monitorare le risorse di una rete indipendentemente dal sistema operativo che si sta utilizzando.
Windows Management Instrumentation, invece, fornisce agli utenti una rappresentazione unificata delle risorse di un sistema, consentendogli così di manipolarle da remoto.
Il secondo aspetto da sottolineare riguarda la modularità, ovvero la possibilità di organizzare i cmdlet con funzionalità correlate in moduli.
Oltre ovviamente a quelli creati dall’utente, PowerShell ne mette a disposizione 4 tipologie già configurate. Parliamo dei moduli:
- Script.
I moduli usati principalmente per importare, esportare e gestire funzioni.
- Binari.
I moduli che vengono manipolati per creare cmdlet con funzionalità più potenti rispetto a quelle che si possono ottenere dai normali script proposti dalla piattaforma.
- Manifesto.
Moduli particolari, che si caratterizzano per l’essere costituiti da file di testo, usati per descrivere i componenti di un modulo.
Nello specifico, ne definiscono i cmdlet, le funzioni, i requisiti e le dipendenze, aiutando così gli utenti a sviluppare e a distribuire moduli diversi in maniera più semplice e veloce.
- Dinamici.
I moduli configurati su richiesta di uno script.
Dato che soddisfano una necessità momentanea, generalmente non vengono memorizzati in modo permanente all’interno della piattaforma.
In più, è possibile scaricare e installare altri moduli ancora, sempre preconfigurati ma che non sono presenti in PowerShell.
Tra questi ultimi, vi sono quelli relativi alle raccolte di siti SharePoint, ai loro gruppi di utenti e impostazioni di sicurezza.
Dato che l’argomento del nostro prossimo capitolo riguarda la relazione tra PowerShell e un tenant di SharePoint Online, il modulo che ci interessa è proprio quello dedicato alla versione cloud di SharePoint. Il suo nome è “Microsoft.SharePoint.Online.Management”.
Come connettere un tenant di SharePoint Online a PowerShell
Prima di vedere insieme i passaggi da seguire per connettere PowerShell a un vostro tenant di SharePoint Online, bisogna che facciamo una piccola introduzione.
PowerShell si applica a qualunque versione di SharePoint, consentendo agli utenti di gestire le impostazioni della piattaforma a livello di organizzazione e di raccolta siti.
Tuttavia, come anticipato, è necessario scaricare e installare il modulo specifico per il tipo di tenant che si vuole connettere, a seconda che sia on-prem oppure cloud.
Nel primo caso, il modulo che serve è quello denominato “Microsoft.SharePoint.Management”; nel secondo caso, che poi è quello che esploreremo in questo capitolo, il modulo di cui dovete dotarvi è chiamato “Microsoft.SharePoint.Online.Management”.
Nonostante i cmdlet e le funzionalità che i due moduli contengono li distinguono l’uno dall’altro, è possibile trovare dei punti in comune.
Per esempio, sono sempre presenti i comandi specializzati nella creazione di una nuova raccolta di siti, definendone titolo, URL, proprietario, quota di archiviazione e gruppi di utenti con relativi permessi.
Inoltre, è possibile trovare cmdlet che permettono di ottenere report e statistiche dettagliate riguardanti l’utilizzo e la performance dei diversi siti che compongono una raccolta.
Detto questo, passiamo ora al nocciolo del nostro discorso e prendiamo il caso che vogliate usare PowerShell per gestire in batch le operazioni dietro a un vostro tenant di SharePoint Online.
Se non avete ancora installato il relativo modulo, il modo più veloce per farlo è di accedere come admin alla PowerShell Gallery e eseguire il cmdlet “Install-Module-Microsoft.SharePoint.Online.Management”.
Una volta fatto, si passa alla connessione con il tenant.
Il percorso si dirama qui in due direzioni parallele, a seconda che il vostro account admin abbia o meno l’autenticazione a più fattori (MFA).
Vediamo entrambi i casi.
1) Passaggi per account admin con autenticazione a più fattori
In breve, ecco come dovete procedere:
- Accedete alla PowerShell Gallery.
- Eseguite il comando “Connect-SPOService-URL(…)”, specificando l’indirizzo del vostro tenant.
- Inserite le vostre credenziali Microsoft nella finestra che si aprirà.
- Approvate la richiesta di accesso, soddisfando i requisiti di autenticazione.
Il gioco è fatto.
Ora che il tenant è connesso a PowerShell, potete iniziare a gestire e manipolare in serie le attività che ne costituiscono la base.
Vedrete che presto il vostro team IT non dovrà più perdere ore o intere giornate per configurare i siti della vostra azienda.
2) Passaggi per account admin senza autenticazione a più fattori
In questo caso, il procedimento diventa significativamente meno impegnativo.
Ecco cosa dovete fare:
- Accedete alla PowerShell Gallery.
- Eseguite il comando “Connect-SPOService-URL(…)-Credential(…)”, specificando l’indirizzo del vostro tenant e inserendo il vostro UPN, ovvero l’indirizzo mail che indica sia il vostro nome utente che il dominio.
- Inserite la password del vostro account.
Ancora una volta, il gioco è fatto.
Serve una mano per gestire i tuoi siti SharePoint?
Ne abbiamo più di 100 per aiutare la tua azienda a:
- Distribuire i giusti permessi agli utenti
- Migliorare la gestione di documenti e risorse
- Garantire la sicurezza delle informazioni condivise
- Sviluppare web part custom e grafiche in linea con il brand
Giuseppe Marchi
Microsoft MVP per SharePoint e Microsoft 365 dal 2010.
Giuseppe è il fondatore di intranet.ai e uno dei massimi esperti in Italia per tutto ciò che riguarda Microsoft 365. Da anni, aiuta le aziende a creare il proprio ambiente di lavoro digitale sul cloud di Microsoft, curando l'esperienza delle persone.
Continua a leggere
SharePoint Sync: come sincronizzare le librerie di SharePoint
Passaggi da seguire, prodotti da usare, vantaggi e problematiche: trovate qui ogni dettaglio sulla sincronizzazione di SharePoint.
SharePoint Migration Tool: come migrare i vostri siti SharePoint
Se dovete migrare i vostri archivi aziendali da o verso un ambiente SharePoint, ma non sapete come fare, questo è l'articolo giusto.
Microsoft Loop: cos'è e perché cambierà il lavoro digitale
Loop supporta la collaborazione asincrona con componenti dinamici e integrati in Microsoft 365: vediamoli nel dettaglio.