Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
PowerShell для Exchange Online — это интерфейс администратора, позволяющий управлять частью Exchange Online в организации Microsoft 365 из командной строки (включая множество встроенных функций безопасности для всех облачных почтовых ящиков и средства защиты в 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: Членство в ролевых группах "Управление организацией" или "Управление получателями".
- 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.
Включение или отключение доступа к удаленной оболочке PowerShell для пользователя
В этом примере отключается доступ пользователя david@contoso.onmicrosoft.comк PowerShell Exchange Online.
Set-User -Identity david@contoso.onmicrosoft.com -EXOModuleEnabled $false
В этом примере предоставляется доступ пользователю chris@contoso.onmicrosoft.comк Exchange Online PowerShell.
Set-User -Identity chris@contoso.onmicrosoft.com -EXOModuleEnabled $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 -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}
Просмотр состояния доступа пользователей к PowerShell к Exchange Online
Совет
Новое EXOModuleEnabled свойство недоступно для использования с параметром Filter в командлете Get-User , но значения EXOModuleEnabled свойства и старого RemotePowerShellEnabled свойства всегда совпадают, поэтому используйте свойство RemotePowerShellEnabled с параметром Filter в командлете Get-User .
Чтобы просмотреть состояние доступа к 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 'RemotePowerShellEnabled -eq $false'
Чтобы отобразить всех пользователей, имеющих доступ к Exchange Online PowerShell, выполните следующую команду:
Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $true'