Разрешение или отключение доступа к 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'