Управление удаленным доступом к PowerShell в Exchange Online

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

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

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

  • Глобальные администраторы Microsoft 365 имеют доступ к Exchange Online PowerShell и могут использовать процедуры в этой статье для настройки доступа Exchange Online PowerShell для других пользователей. Дополнительные сведения о разрешениях в Exchange Online см. в дополнительных сведениях о разрешениях функций в Exchange Online.

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

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

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

Совет

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

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

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

Set-User -Identity david@contoso.com -RemotePowerShellEnabled $false

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

Set-User -Identity david@contoso.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 $_ -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 $_ -RemotePowerShellEnabled $false}

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

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

$<VariableName> = Get-Content <text file>
$<VariableName> | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}

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

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

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

$NPS = Get-Content "C:\My Documents\NoPowerShell.txt"
$NPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}

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

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

Get-User -Identity <UserIdentity> | Format-List RemotePowerShellEnabled

В этом примере показано, как отобразить состояние доступа к удаленной оболочке PowerShell для пользователя Sarah Jones:

Get-User -Identity "Sarah Jones" | Format-List RemotePowerShellEnabled

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

Get-User -ResultSize unlimited | Format-Table -Auto Name,DisplayName,RemotePowerShellEnabled

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

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

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

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