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’un organization 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 dans un organization. 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).

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 :

    Importante

    Dans votre hâte de désactiver rapidement et globalement l’accès à PowerShell dans votre organization, méfiez-vous des commandes comme Get-User | Set-User -RemotePowerShellEnabled $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 à distance à PowerShell ou conserver 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 -RemotePowerShellEnabled $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.

  • 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 -RemotePowerShellEnabled $false

Cet exemple permet d’accéder à Exchange Online PowerShell pour l’utilisateur chris@contoso.onmicrosoft.com.

Set-User -Identity chris@contoso.onmicrosoft.com -RemotePowerShellEnabled $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 le titre, le service, les informations d'adresse et le numéro de téléphone sont visibles uniquement lorsque vous utilisez la cmdlet Get-User. D'autres attributs, tels que CustomAttribute1-15, sont visibles uniquement lorsque vous utilisez la cmdlet 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 -RemotePowerShellEnabled $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 -RemotePowerShellEnabled $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 $_ -RemotePowerShellEnabled $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 $_ -RemotePowerShellEnabled $false}

Afficher les status d’accès PowerShell Exchange Online pour les utilisateurs

Pour afficher les status d’accès PowerShell pour 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 RemotePowerShellEnabled

Pour afficher les status d’accès Exchange Online PowerShell pour tous les utilisateurs, exécutez la commande suivante :

Get-User -ResultSize unlimited | Format-Table -Auto Name,DisplayName,RemotePowerShellEnabled

Pour afficher tous les utilisateurs qui n’ont pas accès à Exchange Online PowerShell, exécutez la commande suivante :

Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $false'

Pour afficher tous les utilisateurs qui ont accès à Exchange Online PowerShell, exécutez la commande suivante :

Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $true'