Comment restaurer une ou plusieurs équipe Teams en PowerShell ?
Sommaire
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 :
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 :