Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 12

Gestion d'équipe PowerShell : Canaux et Membres

Recommended resources

Bonjour et bienvenue dans cette nouvelle leçon du module sur l'automatisation avec PowerShell.

Dans la leçon précédente, vous avez appris à automatiser l'attribution de politiques à des groupes et à des lots d'utilisateurs. Nous avons ainsi déplacé la gestion des droits utilisateurs de l'interface graphique vers des scripts puissants. Aujourd'hui, nous allons appliquer cette même logique d'automatisation non plus seulement aux utilisateurs, mais à la structure même de la collaboration dans Teams.

L'objectif de cette leçon est de vous rendre capable de créer et configurer une nouvelle équipe de A à Z (avec ses canaux et ses membres) à l'aide d'un unique script PowerShell. C'est une compétence fondamentale pour tout administrateur technique, car elle permet de standardiser et d'accélérer le déploiement de nouveaux espaces de travail pour des projets ou des départements.

1. Les Briques de Base : Les Commandes Essentielles

Avant de construire un script complet, il est important de maîtriser chaque commande individuellement. Votre expérience en scripting et en administration système vous sera très utile ici, car la logique est très séquentielle.

Pour une vue d'ensemble en français des commandes que nous allons utiliser, je vous invite à consulter l'article suivant qui est une excellente référence.

Comment gérer ses équipes Teams avec PowerShell ?

L'article "Comment gérer ses équipes Teams avec PowerShell ?" du site IT-Connect est un guide pratique qui couvre les commandes fondamentales pour la création et la gestion d'équipes. Il vous servira de référence tout au long de cette première partie.

Lisez les sections IV ("Créer une équipe Teams"), VI ("Lister, créer et supprimer un canal dans Teams"), et VII ("Ajouter et retirer des membres à une équipe Teams"). Concentrez-vous sur les commandes New-Team, New-TeamChannel et Add-TeamUser ainsi que leurs paramètres de base.

Synthétisons maintenant les étapes clés.

Étape 1 : Créer l'Équipe (New-Team)

Tout commence par la création de l'équipe elle-même. La commande New-Team est le point d'entrée.




# Connexion préalable (si ce n'est pas déjà fait)
# Connect-MicrosoftTeams




# Création d'une équipe privée
$equipeProjet = New-Team -DisplayName "Projet MTR Delta" -Description "Déploiement MTR pour le site de Lyon" -Visibility Private

Les paramètres les plus importants sont :

  • -DisplayName: Le nom de l'équipe visible par les utilisateurs.
  • -Description: Une description pour clarifier l'objectif de l'équipe.
  • -Visibility: Private (accès sur invitation) ou Public (ouvert à tous dans l'organisation).

La commande retourne un objet. Il est crucial de le stocker dans une variable (ici $equipeProjet), car il contient une propriété essentielle : le GroupId. C'est l'identifiant unique que nous utiliserons pour toutes les actions suivantes sur cette équipe.

Étape 2 : Ajouter les Membres (Add-TeamUser)

Une équipe vide n'est pas très utile. La commande Add-TeamUser permet de la peupler. Elle nécessite le GroupId de l'équipe et l'identifiant de l'utilisateur (son UPN - User Principal Name).

Le paramètre -Role est particulièrement important pour un administrateur :

  • Owner (Propriétaire) : Droits complets sur l'équipe (gérer les membres, les paramètres, etc.).
  • Member (Membre) : Droits standards de collaboration.



# On récupère le GroupId à partir de la variable créée à l'étape 1
$groupId = $equipeProjet.GroupId




# Ajouter un chef de projet comme Propriétaire
Add-TeamUser -GroupId $groupId -User "chef.projet@votreentreprise.com" -Role Owner




# Ajouter des membres
Add-TeamUser -GroupId $groupId -User "membre1@votreentreprise.com" -Role Member
Add-TeamUser -GroupId $groupId -User "membre2@votreentreprise.com" -Role Member

Étape 3 : Créer les Canaux (New-TeamChannel)

Enfin, pour structurer les conversations et les fichiers, on crée des canaux avec New-TeamChannel.




# Le GroupId est toujours notre identifiant de référence
New-TeamChannel -GroupId $groupId -DisplayName "01 - Planification"
New-TeamChannel -GroupId $groupId -DisplayName "02 - Déploiement Technique"
New-TeamChannel -GroupId $groupId -DisplayName "03 - Communication"

Par défaut, cette commande crée des canaux standards. La création de canaux privés ou partagés est également possible via le paramètre -MembershipType, mais implique des étapes supplémentaires pour la gestion des membres spécifiques à ces canaux. Pour notre objectif de base, nous nous concentrerons sur les canaux standards.


2. Assembler le Script : de la Commande à l'Automatisation

Maintenant que vous connaissez les briques, assemblons-les en un script unique et réutilisable. C'est là que la puissance de PowerShell se révèle.

La documentation de Microsoft fournit un exemple parfait qui combine ces trois étapes.

New-Team (MicrosoftTeams) | Microsoft Learn

La documentation officielle New-Team de Microsoft Learn contient un exemple de script très concis et efficace qui illustre parfaitement notre objectif.

Repérez l'"Example 3". Analysez comment la sortie de New-Team est capturée dans une variable $group et comment son GroupId est ensuite réutilisé dans les commandes Add-TeamUser et New-TeamChannel.

Voici un exemple de script complet inspiré de cette documentation, que vous pouvez adapter pour vos propres besoins :




# --- Paramètres ---
$teamName = "Projet déploiement Lenovo"
$teamDescription = "Équipe dédiée au déploiement du matériel Lenovo ThinkSmart"
$ownerUPN = "admin@votreentreprise.com"
$members = @(
    "membre.tech1@votreentreprise.com",
    "membre.projet2@votreentreprise.com"
)
$channels = @(
    "01-Planification et Design",
    "02-Installation Physique",
    "03-Configuration Logicielle",
    "04-Tests et Recette"
)




# --- Exécution ---

Write-Host "Création de l'équipe '$teamName'..."



# 1. Créer l'équipe et récupérer son ID
$newTeam = New-Team -DisplayName $teamName -Description $teamDescription -Visibility Private
$groupId = $newTeam.GroupId

Write-Host "Équipe créée avec le GroupId : $groupId"




# 2. Ajouter le propriétaire
Write-Host "Ajout du propriétaire : $ownerUPN"
Add-TeamUser -GroupId $groupId -User $ownerUPN -Role Owner




# 3. Ajouter les membres
Write-Host "Ajout des membres..."
foreach ($member in $members) {
    Add-TeamUser -GroupId $groupId -User $member -Role Member
    Write-Host "- $member ajouté."
}




# 4. Créer les canaux
Write-Host "Création des canaux..."
foreach ($channel in $channels) {
    New-TeamChannel -GroupId $groupId -DisplayName $channel
    Write-Host "- Canal '$channel' créé."
}

Write-Host "Script terminé !"

Ce script est bien plus robuste. En séparant les paramètres du code d'exécution, il devient facile à réutiliser pour créer d'autres équipes en modifiant simplement les variables du début.

PowerShell Script for Creating a Microsoft Teams Team with Multiple Channels
Ce type de script, utilisant ici une table de hachage (`$params`), est une autre approche très propre pour organiser les paramètres avant de les passer à la commande de création. C'est une excellente pratique pour la lisibilité et la maintenance.

3. Aller plus loin : la création en masse

Pour des besoins plus complexes, comme la création de dizaines de canaux ou l'ajout de centaines de membres, vous pouvez vous baser sur des fichiers CSV. Cette approche est très similaire à ce que nous avons vu pour l'assignation de politiques par lots.

La vidéo suivante, bien qu'en anglais, montre visuellement comment utiliser un fichier CSV pour créer plusieurs canaux d'un coup.

Microsoft Teams with PowerShell | Connect to Microsoft Teams PowerShell (13 Examples)

Regardez cet extrait de la vidéo "Microsoft Teams with PowerShell" de SPGuides pour voir comment automatiser la création de canaux à partir d'un fichier CSV. L'action visuelle est très parlante.

Regardez la section de 16:51 à 19:37. Observez comment la commande Import-Csv est utilisée dans une boucle ForEach-Object pour alimenter la commande New-TeamChannel et créer plusieurs canaux en une seule fois.


Mise en Pratique

À votre tour ! Voici un petit défi pour synthétiser ce que vous venez d'apprendre.

Votre mission : Écrivez un script PowerShell qui réalise les actions suivantes :

  1. Crée une nouvelle équipe privée nommée Projet VoIP Cisco-Teams.
  2. Définit sa description comme Migration de la téléphonie Cisco vers Teams Phone.
  3. Vous ajoute comme Propriétaire de l'équipe.
  4. Ajoute deux membres fictifs (par ex., user1@votretenant.com, user2@votretenant.com).
  5. Crée trois canaux standards : Analyse de l'existant, Direct Routing SBC et Tests Utilisateurs.

C'est un excellent exercice pour vous assurer que vous maîtrisez le flux de commandes et la réutilisation du GroupId.


Conclusion

Félicitations ! Vous êtes maintenant capable de scripter entièrement la création et la configuration initiale d'une équipe Teams. C'est une étape majeure dans l'automatisation de l'administration de Teams.

Points clés à retenir :

  • Le processus est séquentiel : New-Team -> Add-TeamUser -> New-TeamChannel.
  • Le GroupId est la clé qui relie toutes ces opérations. Capturer la sortie de New-Team dans une variable est essentiel.
  • Structurer votre code avec des variables ou des tables de hachage pour les paramètres rend vos scripts réutilisables et plus faciles à maintenir.
  • Pour la création à grande échelle, des boucles (foreach) et l'import de fichiers CSV (Import-Csv) sont vos meilleurs alliés.

Prochaine étape :
Maintenant que nous savons construire les espaces collaboratifs, nous allons commencer à intégrer la brique de téléphonie qui vous intéresse particulièrement. Dans la prochaine leçon, vous apprendrez à gérer l'attribution des numéros de téléphone aux utilisateurs via PowerShell, une compétence indispensable pour préparer le déploiement de Teams Phone et du Direct Routing.