Activer ou désactiver l’accès à Exchange Online PowerShell
Exchange Online PowerShell est l’interface d’administration qui permet aux administrateurs de gérer la partie Exchange Online d’une organisation Microsoft 365 à partir de la ligne de commande (y compris de nombreuses fonctionnalités de sécurité dans Exchange Online Protection et Microsoft Defender pour Office 365).
Par défaut, tous les comptes dans Microsoft 365 sont autorisés à utiliser Exchange Online PowerShell. Cet accès ne donne pas aux utilisateurs des fonctionnalités d’administration au sein d’une organisation. Ils sont toujours limités par le contrôle d’accès en fonction du rôle (RBAC) (par exemple, ils peuvent configurer des paramètres sur leur propre boîte aux lettres ou gérer des groupes de distribution dont ils sont propriétaires, mais pas grand-chose d’autre).
Les administrateurs peuvent utiliser les procédures décrites dans cet article pour désactiver ou activer la capacité d’un utilisateur à se connecter à Exchange Online PowerShell.
Ce qu'il faut savoir avant de commencer
Durée d’exécution estimée de chaque procédure : moins de 5 minutes
Les procédures décrites dans cet article sont disponibles uniquement dans Exchange Online PowerShell. Pour vous connecter à Exchange Online PowerShell, voir Connexion à Exchange Online PowerShell.
Vous devez disposer d’autorisations pour pouvoir effectuer les procédures décrites dans cet article. Vous avez le choix parmi les options suivantes :
- RBAC Exchange Online : appartenance aux groupes de rôles Gestion de l’organisation ou Gestion des destinataires .
- RBAC Microsoft Entra : l’appartenance aux rôles Administrateur Exchange ou Administrateur* général donne aux utilisateurs les autorisations et autorisations requises pour d’autres fonctionnalités dans Microsoft 365.
Importante
Dans votre hâte de désactiver rapidement et globalement l’accès à PowerShell dans votre organisation cloud, méfiez-vous des commandes comme
Get-User | Set-User -EXOModuleEnabled $false
sans prendre en compte les comptes d’administrateur. Utilisez les procédures décrites dans cet article pour supprimer de manière sélective l’accès à PowerShell ou préserver l’accès pour ceux qui en ont besoin à l’aide de la syntaxe suivante dans votre commande de suppression globale :Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.onmicrosoft.com' -and $_.UserPrincipalName -ne 'admin2@contoso.onmicrosoft.com'...} | Set-User -EXOModuleEnabled $false
.Si vous vous verrouillez accidentellement de l’accès à PowerShell, créez un compte d’administrateur dans le Centre d’administration Microsoft 365, puis utilisez ce compte pour vous accorder un accès PowerShell à l’aide des procédures décrites dans cet article.
* Microsoft vous recommande d’utiliser des rôles avec le moins d’autorisations. L’utilisation de comptes avec autorisation inférieure permet d’améliorer la sécurité de votre organisation. Administrateur général est un rôle hautement privilégié qui doit être limité aux scénarios d’urgence lorsque vous ne pouvez pas utiliser un rôle existant.
Pour plus d’informations sur la syntaxe de filtre OPATH dans Exchange Online, consultez Informations supplémentaires sur la syntaxe OPATH.
Conseil
Vous rencontrez des difficultés ? Demandez de l’aide en participant aux forums Exchange. Visitez le forum à l'adresse : Exchange Server, Exchange Online ou Exchange Online Protection.
Activer ou désactiver l'accès via l'environnement PowerShell distant pour un utilisateur
Cet exemple montre comment désactiver l’accès à Exchange Online PowerShell pour l’utilisateur david@contoso.onmicrosoft.com
.
Set-User -Identity david@contoso.onmicrosoft.com -EXOModuleEnabled $false
Cet exemple active l’accès à Exchange Online PowerShell pour l’utilisateur chris@contoso.onmicrosoft.com
.
Set-User -Identity chris@contoso.onmicrosoft.com -EXOModuleEnabled $true
Désactiver l'accès via l'environnement PowerShell distant pour de nombreux utilisateurs
Pour bloquer l'accès d'un groupe spécifique d'utilisateurs via un environnement PowerShell distant, vous disposez des options suivantes :
- Filtrer les utilisateurs en fonction d’un attribut existant : cette méthode suppose que les comptes d’utilisateur cibles partagent tous un attribut filtrable unique. Certains attributs, tels que titre, service, informations d’adresse et numéro de téléphone, sont disponibles uniquement à partir de l’applet de commande Get-User . D’autres attributs, tels que CustomAttribute1 à CustomAttribute15, sont disponibles uniquement à partir de l’applet de commande Get-Mailbox .
- Utiliser une liste d’utilisateurs spécifiques : après avoir généré la liste des utilisateurs spécifiques, vous pouvez utiliser cette liste pour désactiver leur accès à Exchange Online PowerShell.
Filtrer les utilisateurs en fonction d’un attribut existant
Pour désactiver l’accès à Exchange Online PowerShell pour un nombre quelconque d’utilisateurs en fonction d’un attribut existant, utilisez la syntaxe suivante :
$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>
$<VariableName> | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}
Cet exemple supprime l'accès via l'environnement PowerShell distant pour tous les utilisateurs dont l'attribut Title contient la valeur « Sales Associate ».
$DSA = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like 'Sales Associate*')"
$DSA | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}
Utiliser une liste d’utilisateurs spécifiques
Pour désactiver l'accès via l'environnement PowerShell distant pour une liste d'utilisateurs spécifiques, utilisez la syntaxe suivante.
$<VariableName> = Get-Content <text file>
$<VariableName> | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}
L’exemple suivant utilise le fichier texte C :\My Documents\NoPowerShell.txt pour identifier les utilisateurs par leur compte. Le fichier texte doit contenir un compte sur chaque ligne comme suit :
akol@contoso.onmicrosoft.com
tjohnston@contoso.onmicrosoft.com
kakers@contoso.onmicrosoft.com
Après avoir rempli le fichier texte avec les comptes d’utilisateur que vous souhaitez mettre à jour, exécutez les commandes suivantes :
$NoPS = Get-Content "C:\My Documents\NoPowerShell.txt"
$NoPS | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}
Afficher l’état d’accès à Exchange Online PowerShell pour les utilisateurs
Pour afficher l’état d’accès PowerShell d’un utilisateur spécifique, remplacez UserIdentity> par <le nom ou le nom d’utilisateur principal (UPN) de l’utilisateur, puis exécutez la commande suivante :
Get-User -Identity "<UserIdentity>" | Format-List EXOModuleEnabled
Pour afficher l’état d’accès à Exchange Online PowerShell pour tous les utilisateurs, exécutez la commande suivante :
Get-User -ResultSize unlimited | Format-Table -Auto DisplayName,EXOModuleEnabled
Pour afficher tous les utilisateurs qui n’ont pas accès à Exchange Online PowerShell, exécutez la commande suivante :
Get-User -ResultSize unlimited -Filter 'EXOModuleEnabled -eq $false'
Pour afficher tous les utilisateurs qui ont accès à Exchange Online PowerShell, exécutez la commande suivante :
Get-User -ResultSize unlimited -Filter 'EXOModuleEnabled -eq $true'