Activer ou désactiver l’accès à Exchange Online PowerShell

Remote PowerShell vous permet de gérer votre organisation Exchange Online à partir de la ligne de commande. Par défaut, tous les comptes que vous créez dans Microsoft 365 sont autorisés à utiliser Exchange Online PowerShell. Vous pouvez activer ou désactiver la possibilité pour un utilisateur de se connecter à votre organisation Exchange Online à l'aide de l'environnement PowerShell distant. Notez que l'accès à votre organisation Exchange Online via l'environnement PowerShell distant n'octroie pas de pouvoirs administratifs supplémentaires aux utilisateurs. Les capacités d'un utilisateur sont encore définies par un contrôle d'accès en fonction du rôle (RBAC) et les rôles qui leur sont attribués.

Remarque

Vous pouvez également utiliser des règles d’accès client pour bloquer l’accès PowerShell à Exchange Online. Pour plus d’informations, consultez Règles d’accès au client dans Exchange Online.

Ce qu'il faut savoir avant de commencer

  • Durée d’exécution estimée de chaque procédure : moins de 5 minutes

  • Les administrateurs généraux Microsoft 365 ont accès à Exchange Online PowerShell et peuvent utiliser les procédures décrites dans cet article pour configurer Exchange Online l’accès PowerShell pour d’autres utilisateurs. Pour plus d'informations sur les autorisations dans Exchange Online, voir Feature Permissions in Exchange Online.

    Importante

    Dans votre hâte de désactiver rapidement et globalement l’accès PowerShell distant dans votre organisation, faites attention aux 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 à distance, créez un compte d’administrateur dans le Centre d'administration Microsoft 365, puis utilisez ce compte pour vous accorder un accès PowerShell distant à l’aide des procédures décrites dans cet article.

  • Vous pouvez uniquement utiliser Exchange Online PowerShell pour effectuer cette procédure. Pour vous connecter à Exchange Online PowerShell, voir Connexion à Exchange Online PowerShell.

  • 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 :

$NPS = Get-Content "C:\My Documents\NoPowerShell.txt"

$NPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}

Afficher l'état de l'accès via l'environnement PowerShell distant pour des utilisateurs

Pour afficher l’état d’accès PowerShell distant 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 l’état 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'