Разрешение или отключение доступа к 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: членство в роли глобального администратора.
Важно!
Чтобы быстро и глобально отключить доступ к PowerShell в организации, остерегайтесь команд, например
Get-User | Set-User -RemotePowerShellEnabled $false
без учета учетных записей администратора. Используйте процедуры, описанные в этой статье, чтобы выборочно удалить удаленный доступ к PowerShell или сохранить доступ для тех, кому он нужен, используя следующий синтаксис в глобальной команде удаления:Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.onmicrosoft.com' -and $_.UserPrincipalName -ne 'admin2@contoso.onmicrosoft.com'...} | Set-User -RemotePowerShellEnabled $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 -RemotePowerShellEnabled $false
В этом примере предоставляется доступ к Exchange Online PowerShell для пользователя chris@contoso.onmicrosoft.com.
Set-User -Identity chris@contoso.onmicrosoft.com -RemotePowerShellEnabled $true
Отключение доступа к удаленной оболочке PowerShell для нескольких пользователей
Отключить доступ к удаленной оболочке PowerShell для определенной группы пользователей можно несколькими способами, указанными ниже.
Фильтрация пользователей по существующему атрибуту. Этот метод предполагает, что все учетные записи целевых пользователей имеют уникальный фильтруемый атрибут. Некоторые атрибуты, такие как должность, отдел, адрес и телефонный номер, отображаются только при использовании командлета Get-User. Другие же, такие как атрибуты от CustomAttribute1 до CustomAttribute15, отображаются только при использовании командлета Get-Mailbox.
Использовать список определенных пользователей. После создания списка определенных пользователей вы можете использовать этот список, чтобы отключить их доступ к Exchange Online PowerShell.
Фильтрация пользователей на основе существующего атрибута
Чтобы отключить доступ к Exchange Online PowerShell для любого количества пользователей на основе существующего атрибута, используйте следующий синтаксис:
$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>
$<VariableName> | foreach {Set-User -Identity $_.WindowsEmailAddress -RemotePowerShellEnabled $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 -RemotePowerShellEnabled $false}
Использование списка определенных пользователей
Чтобы отключить доступ к удаленной оболочке PowerShell для списка определенных пользователей, введите команду в следующем формате:
$<VariableName> = Get-Content <text file>
$<VariableName> | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $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 $_ -RemotePowerShellEnabled $false}
Просмотр состояния доступа Exchange Online PowerShell для пользователей
Чтобы просмотреть состояние доступа PowerShell для определенного пользователя, замените <UserIdentity> именем пользователя или именем участника-пользователя (UPN) и выполните следующую команду:
Get-User -Identity "<UserIdentity>" | Format-List RemotePowerShellEnabled
Чтобы отобразить состояние доступа Exchange Online PowerShell для всех пользователей, выполните следующую команду:
Get-User -ResultSize unlimited | Format-Table -Auto Name,DisplayName,RemotePowerShellEnabled
Чтобы отобразить всех пользователей, у которых нет доступа к Exchange Online PowerShell, выполните следующую команду:
Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $false'
Чтобы отобразить всех пользователей, имеющих доступ к Exchange Online PowerShell, выполните следующую команду:
Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $true'
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по