Microsoft Teams è l'hub per la collaborazione di Microsoft 365 che permette di integrare persone, contenuti e strumenti. Microsoft Teams può essere gestito attraverso il suo Admin Center, utilizzando PowerShell o tramite l'utilizzo di Microsoft Graph API. In questo articolo verranno mostrati i cmdlet PowerShell più comuni per la gestione di Microsoft Teams. Prima di iniziare è importante verificare il proprio ruolo di amministratore di Microsoft Teams, infatti i cmdlet utilizzabili dipendono dal ruolo ricoperto.
|  | 
| FIG 1 - Microsoft Teams | 
Ruoli amministratore Microsoft Teams
In Azure Active Directory (Azure AD) è possibile designare gli amministratori che necessitano di livelli di accesso diversi per la gestione di Microsoft Teams. Gli amministratori possono essere abilitati a gestire l'intero carico di lavoro di Teams oppure possono avere autorizzazioni delegate per la risoluzione dei problemi di qualità delle chiamate o per gestire le esigenze di telefonia dell'organizzazione. A tale scopo sono disponibili cinque diversi ruoli di amministratore di Teams: 
- Amministratore del servizio teams
 Supervisiona il servizio Teams e si occupa di gestire e creare gruppi Microsoft 365.
- Amministratore comunicazioni Teams
 Gestisce le caratteristiche delle chiamate e delle riunioni all'interno del servizio Teams.
- Amministratore del dispositivo Teams
 Gestisce i dispositivi configurati per l'uso con il servizio Teams.
- Tecnico supporto comunicazioni Teams
 Risolve i problemi di comunicazione all'interno di Teams usando strumenti avanzati.
- Specialista supporto comunicazioni Teams
 Risolve i problemi di comunicazione in Teams usando gli strumenti di base (si tratta del ruolo con privilegi meno elevati).
Installare il modulo di PowerShell per Microsoft Teams
Prima di poter utilizzare i cmdlet è necessario installare il modulo di PowerShell per Microsoft Teams. Da PowerShell eseguire il comando
Install-Module -Name MicrosoftTeams
Accesso a Teams
Per accedere a Teams utilizzando il proprio nome utente e password eseguire i comandi
$cred=Get-Credential
Connect-MicrosoftTeams -Credential $cred
Per disconnettersi dall'ambiente Microsoft Teams eseguire il comando
Disconnect-MicrosoftTeams
Visualizzare i cmdlets disponibili
Per visualizzare l'elenco di tutti i cmdlet che è possibile utilizzare eseguire il comando
Get-TeamHelp
Creare e gestire un team
Un team può essere visto come un insieme di utenti che hanno un obbiettivo in comune. Per la creazione e la gestione di un team si utilizzano i seguenti cmdlet
1. New-team
Crea un nuovo team
Sintassi
New-team
   -DisplayName <String>
   [-Description <String>]
   [-MailNickName <String>]
   [-Classification <String>]
   [-Visibility <String>]
   [-Template <String>]
   [-Owner <String>]
   [-AllowGiphy <Boolean>]
   [-GiphyContentRating <String>]
   [-AllowStickersAndMemes <Boolean>]
   [-AllowCustomMemes <Boolean>]
   [-AllowGuestCreateUpdateChannels <Boolean>]
   [-AllowGuestDeleteChannels <Boolean>]
   [-AllowCreateUpdateChannels <Boolean>]
   [-AllowDeleteChannels <Boolean>]
   [-AllowAddRemoveApps <Boolean>]
   [-AllowCreateUpdateRemoveTabs <Boolean>]
   [-AllowCreateUpdateRemoveConnectors <Boolean>]
   [-AllowUserEditMessages <Boolean>]
   [-AllowUserDeleteMessages <Boolean>]
   [-AllowOwnerDeleteMessages <Boolean>]
   [-AllowTeamMentions <Boolean>]
   [-AllowChannelMentions <Boolean>]
   [-ShowInTeamsSearchAndSuggestions <Boolean>]
    [-RetainCreatedGroup <SwitchParameter>]
   [<CommonParameters>]
oppure
New-team
   -GroupId <String>
   [-Owner <String>]
   [-AllowGiphy <Boolean>]
   [-GiphyContentRating <String>]
   [-AllowStickersAndMemes <Boolean>]
   [-AllowCustomMemes <Boolean>]
   [-AllowGuestCreateUpdateChannels <Boolean>]
   [-AllowGuestDeleteChannels <Boolean>]
   [-AllowCreateUpdateChannels <Boolean>]
   [-AllowDeleteChannels <Boolean>]
   [-AllowAddRemoveApps <Boolean>]
   [-AllowCreateUpdateRemoveTabs <Boolean>]
   [-AllowCreateUpdateRemoveConnectors <Boolean>]
   [-AllowUserEditMessages <Boolean>]
   [-AllowUserDeleteMessages <Boolean>]
   [-AllowOwnerDeleteMessages <Boolean>]
   [-AllowTeamMentions <Boolean>]
   [-AllowChannelMentions <Boolean>][-ShowInTeamsSearchAndSuggestions <Boolean>]
   [-RetainCreatedGroup <SwitchParameter>]
   [<CommonParameters>]
Esempio 1
New-Team -DisplayName "Team1"   
Crea un nuovo team assegnandogli il nome Team1. 
Esempio 2
New-Team -DisplayName "Team1" -Description "Supporto Tecnico" -Visibility Public
Crea un nuovo team assegnandogli il nome Team1, viene aggiunta una descrizione al gruppo e tramite il parametro -Visibility il gruppo viene reso pubblico.
2. Get-team
Recupera un oggetto team con tutte le proprietà.
Sintassi
Get-team   
   -GroupId <String>
   [-User <String>]
   [-Archived <Boolean>]
   [-Visibility <String>]
   [-DisplayName <String>]
   [-MailNickName <String>]
   [<CommonParameters>]
oppure
Get-team
   [-User <String>]
   [-Archived <Boolean>]
   [-Visibility <String>]
   [-DisplayName <String>]
   [-MailNickName <String>]
   [<CommonParameters>]
Esempio 1
Get-Team -User glubrano@contoso.com
Visualizza tutti i team a cui l'utente specificato appartiene.
Esempio 2
Get-Team -Archived $true -Visibility Private
Restituisce tutti i team archiviati e privati.
3. Set-team
Permette di aggiornare/impostare le proprietà di un team
Sintassi
Set-team
   -GroupId <String>
   [-DisplayName <String>]
   [-Description <String>]
   [-MailNickName <String>]
   [-Classification <String>]
   [-Visibility <String>]
   [-AllowGiphy <Boolean>]
   [-GiphyContentRating <String>]
   [-AllowStickersAndMemes <Boolean>]
   [-AllowCustomMemes <Boolean>]
   [-AllowGuestCreateUpdateChannels <Boolean>]
   [-AllowGuestDeleteChannels <Boolean>]
   [-AllowCreateUpdateChannels <Boolean>]
   [-AllowDeleteChannels <Boolean>]
   [-AllowAddRemoveApps <Boolean>]
   [-AllowCreateUpdateRemoveTabs <Boolean>]
   [-AllowCreateUpdateRemoveConnectors <Boolean>]
   [-AllowUserEditMessages <Boolean>]
   [-AllowUserDeleteMessages <Boolean>]
   [-AllowOwnerDeleteMessages <Boolean>]
   [-AllowTeamMentions <Boolean>]
   [-AllowChannelMentions <Boolean>]
   [-ShowInTeamsSearchAndSuggestions <Boolean>]
   [<CommonParameters>]
   
Esempio 1
Set-Team -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Nome aggiornato" -Visibility Public   
Il comando aggiorna il Nome e il tipo di visibilità del team avente l'ID specificato.
  
4. Set-TeamPicture
Permette di impostare una foto per il team.
Sintassi
Set-TeamPicture
   -GroupId <String>
   -ImagePath <String>
   [<CommonParameters>]
   
Esempio 1
Set-TeamPicture -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -ImagePath c:\Immagini\Logo.png
Assegna l'immagine Logo.png al team avente l'ID specificato.
Il comando restituisce subito l'esito dell'operazione ma potrebbe essere necessario attendere 1 ora e riavviare l'applicazione per visualizzare la modifica.
5. Remove-team
Rimuove un team.
Sintassi
Remove-Team
      -GroupId <String>
      [<CommonParameters>]
Esempio 1	  
Remove-Team -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df
Rimuovere il team avente l'ID specificato.
Aggiungere/rimuovere membri ad un team
Per aggiungere e rimuovere i membri di un team vengono utilizzati i cmdlet Add-TeamUser e Remove-TeamUser.
1. Add-teamuser
Aggiunge un utente al team specificato.
Sintassi
Add-TeamUser
   -GroupId <String>
   -User <String>
   [-Role <String>]
   [<CommonParameters>]
   
Esempio 1
Add-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User glubrano@contoso.com
Aggiunge l'utente glubrano@contoso.com al team avente l'ID specificato.
2. Remove-TeamUser
Rimuove un utente dal team.
Sintassi
Esempio 1
Remove-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User glubrano@contoso.com -Role Owner
L'utente specificato viene rimosso dal ruolo di Proprietario ma rimane come membro del team.
Esempio 2
Remove-TeamUser -GroupId 31f1ff6c-d48c-4f8a-b2e1-abca7fd399df -User glubrano@contoso.com
L'utente specificato viene rimosso dal team.
Creare e rimuovere canali
Se un team è un gruppo di utenti che si riuniscono attorno ad un obiettivo comune, i canali sono gli spazi di collaborazione all'interno di un team in cui viene concretamente svolto il lavoro. I cmdlet New-TeamChannel e Remove-TeamChannel vengono utilizzati per la creazione/rimozione di canali. 
1. New-TeamChannel 
Crea un nuovo canale all'interno di un team.
Sintassi
New-TeamChannel
   -GroupId <String>
   -DisplayName <String>
   [-Description <String>]
   [-MembershipType <String>]
   [-Owner <String>]
   [<CommonParameters>]
   
Esempio 1
New-TeamChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -DisplayName "Ufficio"
Crea un nuovo canale con nome Ufficio nel gruppo team indicato. 
Esempio 2
New-TeamChannel -GroupId 126b90a5-e65a-4fef-98e3-d9b49f4acf12 -DisplayName "Ufficio" -MembershipType Private
Crea un nuovo canale privato con nome Ufficio nel gruppo team indicato. 
2. Remove-TeamChannel 
Cancella un canale all'interno di un team. Questo non cancellerà il contenuto delle schede associate.
Sintassi
Remove-TeamChannel
      -GroupId <String>
      -DisplayName <String>
      [<CommonParameters>]
	  
Esempio 1
Remove-TeamChannel -GroupId 2f162b0e-36d2-4e15-8ba3-ba229cecdccf -DisplayName "Ufficio"	 
Elimina il canale nominato Ufficio dal team avente ID indicato