vendredi, mars 29, 2024

Le Blog de Teamy

En route pour l'école 2.0

Contrôler la création des équipes dans Teams


clip_image001

https://docs.microsoft.com/fr-fr/office365/admin/create-groups/manage-creation-of-groups?redirectSourcePath=%252farticle%252fmanage-who-can-create-office-365-groups-4c46c8cb-17d0-44b5-9776-005fced8e618&view=o365-worldwide

Par défaut, la création des équipes Teams est en libre-service, cela veut dire que quiconque au sein de votre organisation (entreprise, école, etc.) à qui vous avez attribué une licence Office 365 peut créer une ou plusieurs équipes Teams en fonction de ses besoins propres. Cette fonctionnalité très sympathique, est un véritable enjeu pour les administrateurs qui doivent suivre (contrôler) les ressources Office 365.

Une organisation peut très vite perdre le contrôle sur Teams si les utilisateurs ne sont pas formés à son usage, et tant qu’administrateur on se retrouve vite face à une quantité d’espaces Teams sans en connaître leurs utilités.

Jusqu’à ce que vos utilisateurs soient formés, je vous propose de voir les choses autrement, et de couper le droit de création des équipes Teams, et de le réserver à des utilisateurs avertis.

Tout d’abord il faut comprendre que les équipes Teams sont construites sur une base existante, les Groupes Office 365, ce qui est le cas aussi de Planner par exemple. Et donc, ce que nous allons faire réellement c’est de couper le droit de création des Groupes Office 365 à vos utilisateurs. La chose une fois faite, ceci aura un impact sur les éléments suivants : Teams, SharePoint, Yammer, Planner, Stream, etc…

La meilleure manière de procéder consiste à créer un groupe de sécurité, dont seul les membres de ce groupe pourront créer des groupes Office 365 ainsi que des Plans et des équipe Teams.

Création d’un groupe de Sécurité

via la console d’administration d’Office 365

clip_image002

On ajoute un nouveau groupe de Sécurité

clip_image003

clip_image004

Le nom du groupe est ici : GroupesCreatorsAllowed, et n’hésitez pas à y mettre une description explicite !
N’oubliez pas d’y ajouter les utilisateurs qui doivent avoir la permission de créer des équipes dans Teams.

Ouvrir la console PowerShell en mode Administrateur

clip_image005

clip_image006


Le script

#Authentification Parameters
$AdminLogin = "admin@contoso.com"
$AdminPassword = Read-Host -Prompt "Enter your Office 365 Password" -AsSecureString
$credential = new-object System.Management.Automation.PSCredential $AdminLogin, $AdminPassword

#Script Parameters
$GroupName = "GroupesCreatorsAllowed"
$AllowGroupCreation = "False"

Connect-AzureAD -Credential $credential

#Prompt User if AllowGroupCreation must be changed
$response = ""
do { $response = Read-Host "Do you want update EnableGroupCreation setting value to $AllowGroupCreation  Y(Yes) or N(no)" } 
until ("y","n","Y","N" -ccontains $response)

if($response -eq "y" -or $response -eq "Y")
{
    $settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id
    if(!$settingsObjectID)
    {
        $template = Get-AzureADDirectorySettingTemplate | Where-object {$_.displayname -eq "group.unified"}
        $settingsCopy = $template.CreateDirectorySetting()
        New-AzureADDirectorySetting -DirectorySetting $settingsCopy
        $settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Property Displayname -Value "Group.Unified" -EQ).id
    }

    $settingsCopy = Get-AzureADDirectorySetting -Id $settingsObjectID
    $settingsCopy["EnableGroupCreation"] = $AllowGroupCreation

    if($GroupName)
    {
        $settingsCopy["GroupCreationAllowedGroupId"] = (Get-AzureADGroup -SearchString $GroupName).objectid
    }
    else {$settingsCopy["GroupCreationAllowedGroupId"] = $GroupName}
    Set-AzureADDirectorySetting -Id $settingsObjectID -DirectorySetting $settingsCopy    
}

Soyez attentifs aux paramètres suivants, surtout $GroupName qui doit refléter le nom du groupe de sécurité que vous venez de créer

#Script Parameters $GroupName = "GroupesCreatorsAllowed" 
$AllowGroupCreation = "False"

 

Vérification et test

Pour vérifier que votre paramètres ont bien été appliqués, vous pouvez exécuter le script suivant

#Authentification Parameters
$AdminLogin = "admin@contoso.com"
$AdminPassword = Read-Host -Prompt "Enter your Office 365 Password" -AsSecureString
$credential = new-object System.Management.Automation.PSCredential $AdminLogin, $AdminPassword

(Get-AzureADDirectorySetting).Values

clip_image007

Le paramètre EnableGroupCreation doit être à « False »

 

Pour tester que votre paramètres ont bien été appliqués, vous pouvez effectuer la manipulation suivante

Avec un compte utilisateur qui n’a aucun droit d’adminsitration, on tente de créer une équipe Teams

clip_image008

clip_image009

Lors de la prochaine connexion de l’utilisateur à Teams, l’option de création d’une équipe devrait même disparaitre

 

 

Pour rendre la création des équipes en libre-service, vous pouvez relancer le script en modifiant le paramètre « $AllowGroupCreation  »

$AllowGroupCreation = "True"

 

Pour revenir à l’état d’origine vous pouvez exécuter le script suivant

#Authentification Parameters
$AdminLogin = "admin@contoso.com"
$AdminPassword = Read-Host -Prompt "Enter your Office 365 Password" -AsSecureString
$credential = new-object System.Management.Automation.PSCredential $AdminLogin, $AdminPassword

Connect-AzureAD -Credential $credential

$SettingId = Get-AzureADDirectorySetting -All $True | where-object {$_.DisplayName -eq "Group.Unified"}
Remove-AzureADDirectorySetting -Id $SettingId.Id

 

Dans un prochain article, je vous proposerais une autre méthode qui viendra compléter celle-ci. En effet je ne suis pas partisan de rendre la création des équipes Teams en libre-service sans une forme de contrôle. L’objectif sera d’automatiser la création des équipes suite à une demande faite au travers d’un formulaire, demande qui une fois validée, attribuera à la personne qui en aura fait la demande, une équipe Teams dont il sera le propriétaire.

Comment avez-vous trouvé ce billet ?

N'hésitez pas à voter !

Score moyen 4.5 / 5. Nombre de vote 8


S’abonner
Notifier de
guest

2 Commentaires
Inline Feedbacks
View all comments
Admin365 ARSG
Admin365 ARSG
5 octobre 2021 21 h 40 min

Cela ne fonctionne pas, un erreur intervient avec cette information:

Connect-AzureAD : Le terme «Connect-AzureAD» n’est pas reconnu comme nom d’applet de commande, fonction, fichier de script ou programme exécutable. Vérifiez

l’orthographe du nom, ou si un chemin d’accès existe, vérifiez que le chemin d’accès est correct et réessayez.

Au caractère Ligne:10 : 1

+ Connect-AzureAD -Credential $credential

+ ~~~~~~~~~~~~~~~

   + CategoryInfo         : ObjectNotFound: (Connect-AzureAD:String) [], CommandNotFoundException

   + FullyQualifiedErrorId : CommandNotFoundException

Avez-vous une explication à ce problème ?