21/05/2024

Office 365PowerShell

Comment restaurer une ou plusieurs équipe Teams en PowerShell ?

I. Présentation

Dans ce tutoriel, nous allons voir comment restaurer une équipe Teams à l'aide de PowerShell ! Ceci peut s'avérer utile et pratique si vous devez restaurer une ou plusieurs équipes Teams. Pour restaurer en masse des équipes Teams, ceci vous évitera d'y passer des heures....

Pour restaurer une équipe Teams, il n'existe pas encore de cmdlet dans le module PowerShell "Microsoft Teams". Nous allons devoir utiliser le module Microsoft Graph (recommandé), bien qu'il soit toujours possible d'utiliser le module AzureAD (via Restore-AzureADMSDeletedDirectoryObject - non recommandé).

Dans cet exemple, c'est l'équipe "Demo IT-Connect" qui a été supprimée et qui sera restaurée. Cette méthode permet de restaurer l'équipe Teams ainsi que son contenu (fichiers, messages, etc.).

II. Installer le module Microsoft Graph

Commençons par installer le module Microsoft Graph pour l'utilisateur actuel :

Install-Module Microsoft.Graph -Scope CurrentUser

Vous pouvez aussi l'installer pour tous les utilisateurs :

Install-Module Microsoft.Graph -Scope AllUsers

III. Autorisation Microsoft Graph

Cette partie sera volontairement synthétique, car j'ai déjà expliqué tout le processus de configuration dans Microsoft Entra ID au sein d'un précédent article. Voici le lien pour ceux qui auront besoin :

L'application Microsoft Graph doit avoir l'autorisation nommée "Group.ReadWrite.All" pour pouvoir restaurer le groupe correspondant à l'équipe Teams.

IV. Restaurer l'équipe Teams en PowerShell

La première étape consiste à établir une connexion à Microsoft Graph via PowerShell. Voici un bout de code permettant d'établir la connexion à l'aide du cmdlet Connect-MgGraph.

# ID du tenant 
$IDTenant = "6990***********" 

# ID de l'application 
$IDApp = "2438c7***********" 

# Secret 
$Secret = "Obr8***********"

$SecureSecret = ConvertTo-SecureString -AsPlainText $Secret -Force 
$ClientSecretCredential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList ($IDApp, $SecureSecret) 
Connect-MgGraph -TenantId $IDTenant -ClientSecretCredential $ClientSecretCredential

Ensuite, vous pouvez récupérer la liste des groupes supprimés à l'aide de la commande suivante :

Get-MgDirectoryDeletedGroup -All

Bien sûr, vous pouvez ajouter un filtre (via le paramètre -Filter ou éventuellement Where-Object) pour sélectionner uniquement les groupes correspondants aux équipes à restaurer.

Cette commande retourne plusieurs propriétés, dont "Id" que l'on va devoir utiliser pour restaurer le groupe :

PowerShell Get-MgDirectoryDeletedGroup

Si l'on souhaite restaurer cette équipe Teams, nous devons utiliser cette commande :

Restore-MgDirectoryDeletedItem -DirectoryObjectId "b4423236-9d6d-407f-8fce-4eba7f350783"

La restauration de l'équipe Teams sera rapide mais cela peut pendre plusieurs heures avant que toutes les données soient visibles.

Remarque : dans sa documentation, Microsoft évoque le tutoriel Restore-MgBetaDirectoryDeletedItem, mais avec celui mentionné dans la commande ci-dessus, cela fonctionne très bien.

Ensuite, vous pouvez utiliser la commande Get-MgGroup pour vérifier la présence de votre groupe au sein des groupes actifs (par ID ou par nom). Par exemple :

Get-MgGroup -GroupId "b4423236-9d6d-407f-8fce-4eba7f350783"

Pour restaurer en masse des équipes Teams via PowerShell, vous devez parcourir la liste des groupes à restaurer avec ForEach-Object, après avoir appliqué un filtre pour sélectionner vos groupes (vérifiez bien votre sélection !).

Voici un exemple pour restaurer toutes les équipes Teams qui contiennent la chaine "IT-Connect" dans leur nom d'affichage :

Get-MgDirectoryDeletedGroup -All | Where-Object { $_.DisplayName -like "IT-Connect" } | ForEach-Object{ Restore-MgDirectoryDeletedItem -DirectoryObjectId $_.Id }

Il ne reste plus qu'à patienter le temps que tous les groupes soient traités !

V. Conclusion

Grâce à ce tutoriel, vous êtes en mesure de restaurer une ou plusieurs équipes Teams à l'aide de PowerShell. De manière générale, vous devez prioriser Microsoft Graph pour interagir avec les services Microsoft 365. Pour en savoir plus sur ce module, vous pouvez lire cet article :

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.