Поделиться через


Разрешение или отключение доступа к Exchange Online PowerShell

Exchange Online PowerShell — это административный интерфейс, который позволяет администраторам управлять частью Exchange Online организации Microsoft 365 из командной строки (включая множество функций безопасности в Exchange Online Protection и Microsoft Defender для Office 365).

По умолчанию всем учетным записям в Microsoft 365 разрешено использовать Exchange Online PowerShell. Этот доступ не предоставляет пользователям возможности администрирования в организации. Они по-прежнему ограничены управлением доступом на основе ролей (RBAC) (например, они могут настраивать параметры в своем почтовом ящике или управлять группами рассылки, которыми они владеют, но не так много).

Администраторы могут использовать процедуры, описанные в этой статье, чтобы отключить или включить возможность подключения пользователя к Exchange Online PowerShell.

Что нужно знать перед началом работы

  • Предполагаемое время для завершения каждой процедуры: менее 5 минут

  • Процедуры, описанные в этой статье, доступны только в Exchange Online PowerShell. Сведения о том, как подключиться к Exchange Online PowerShell, см. в статье Подключение к Exchange Online PowerShell.

  • Перед выполнением процедур, описанных в этой статье, вам необходимо назначить разрешения. Возможны следующие варианты:

    • Exchange Online RBAC: членство в группах ролей "Управление организацией " или "Управление получателями ".
    • Microsoft Entra RBAC. Членство в ролях администратора Exchange или глобального администратора* предоставляет пользователям необходимые разрешения и разрешения для других функций Microsoft 365.

    Важно!

    Чтобы быстро и глобально отключить доступ к PowerShell в облачной организации, остерегайтесь команд, например Get-User | Set-User -EXOModuleEnabled $false без учета учетных записей администратора. Используйте процедуры, описанные в этой статье, чтобы выборочно удалить доступ к PowerShell или сохранить доступ для тех, кому он нужен, используя следующий синтаксис в глобальной команде удаления: Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.onmicrosoft.com' -and $_.UserPrincipalName -ne 'admin2@contoso.onmicrosoft.com'...} | Set-User -EXOModuleEnabled $false.

    Если вы случайно заблокируете доступ к PowerShell, создайте новую учетную запись администратора в Центре администрирования Microsoft 365, а затем используйте эту учетную запись, чтобы предоставить себе доступ к PowerShell с помощью процедур, описанных в этой статье.

    * Корпорация Майкрософт рекомендует использовать роли с наименьшими разрешениями. Использование учетных записей с более низкими разрешениями помогает повысить безопасность организации. Глобальный администратор — это очень привилегированная роль, которая должна быть ограничена сценариями чрезвычайных ситуаций, когда вы не можете использовать существующую роль.

  • Подробные сведения о синтаксисе фильтра OPATH в Exchange Online см. в разделе Дополнительные сведения о синтаксисе OPATH.

Совет

Возникли проблемы? Обратитесь за помощью к участникам форумов Exchange. Посетите форумы по Exchange Online или Exchange Online Protection.

Включение или отключение доступа к удаленной оболочке PowerShell для пользователя

В этом примере отключается доступ к Exchange Online PowerShell для пользователя david@contoso.onmicrosoft.com.

Set-User -Identity david@contoso.onmicrosoft.com -EXOModuleEnabled $false

В этом примере предоставляется доступ к Exchange Online PowerShell для пользователя chris@contoso.onmicrosoft.com.

Set-User -Identity chris@contoso.onmicrosoft.com -EXOModuleEnabled $true

Отключение доступа к удаленной оболочке PowerShell для нескольких пользователей

Отключить доступ к удаленной оболочке PowerShell для определенной группы пользователей можно несколькими способами, указанными ниже.

  • Фильтрация пользователей по существующему атрибуту. Этот метод предполагает, что все учетные записи целевых пользователей имеют уникальный фильтруемый атрибут. Некоторые атрибуты, такие как Title, Department, address information и номер телефона, доступны только из командлета Get-User . Другие атрибуты, такие как CustomAttribute1 to CustomAttribute15, доступны только из командлета Get-Mailbox .
  • Использовать список определенных пользователей. После создания списка определенных пользователей вы можете использовать этот список, чтобы отключить их доступ к Exchange Online PowerShell.

Фильтрация пользователей на основе существующего атрибута

Чтобы отключить доступ к Exchange Online PowerShell для любого количества пользователей на основе существующего атрибута, используйте следующий синтаксис:

$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>

$<VariableName> | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}

В этом примере показано отключение доступа к удаленной оболочке PowerShell для всех пользователей, атрибут Title которых содержит значение Sales Associate.

$DSA = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like 'Sales Associate*')"

$DSA | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}

Использование списка определенных пользователей

Чтобы отключить доступ к удаленной оболочке PowerShell для списка определенных пользователей, введите команду в следующем формате:

$<VariableName> = Get-Content <text file>

$<VariableName> | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}

В следующем примере текстовый файл C:\My Documents\NoPowerShell.txt используется для идентификации пользователей по их учетным записям. Текстовый файл должен содержать по одной учетной записи в каждой строке следующим образом:

akol@contoso.onmicrosoft.com
tjohnston@contoso.onmicrosoft.com
kakers@contoso.onmicrosoft.com

После заполнения текстового файла учетными записями пользователей, которые требуется обновить, выполните следующие команды:

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

$NoPS | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}

Просмотр состояния доступа к Exchange Online PowerShell для пользователей

Чтобы просмотреть состояние доступа PowerShell для определенного пользователя, замените <UserIdentity> именем пользователя или именем участника-пользователя (UPN) и выполните следующую команду:

Get-User -Identity "<UserIdentity>" | Format-List EXOModuleEnabled

Чтобы отобразить состояние доступа к Exchange Online PowerShell для всех пользователей, выполните следующую команду:

Get-User -ResultSize unlimited | Format-Table -Auto DisplayName,EXOModuleEnabled

Чтобы отобразить всех пользователей, у которых нет доступа к Exchange Online PowerShell, выполните следующую команду:

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

Чтобы отобразить всех пользователей, имеющих доступ к Exchange Online PowerShell, выполните следующую команду:

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