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

Удаленная оболочка PowerShell в Microsoft Exchange позволяет управлять организацией Exchange с удаленного компьютера в составе внутренней сети или через Интернет. Вы можете разрешать или запрещать пользователям подключаться к серверу Exchange с помощью удаленной оболочки PowerShell. Дополнительные сведения о удаленной PowerShell см. в Exchange Server PowerShell (Exchange Management Shell).

Дополнительные задачи управления, связанные с удаленной оболочкой PowerShell, вы можете найти в разделе Подключение к серверам Exchange Server с помощью удаленной оболочки PowerShell.

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

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

  • Для выполнения этой процедуры можно использовать только PowerShell. Сведения о том, как открыть командную консоль Exchange в локальной организации Exchange, см. в статье Open the Exchange Management Shell.

  • По умолчанию у всех учетных данных пользователей есть доступ к удаленной оболочке PowerShell. Однако для подключения к серверу Exchange для удаленного подключения к серверу Exchange пользователю необходимо быть членом группы ролей управления или непосредственно назначена роль управления, которая позволяет пользователю запускать команды Exchange. Дополнительные сведения о группах ролей и ролях управления см. в Exchange Server разрешений.

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

  • Для выполнения этой процедуры (процедур) необходимы соответствующие разрешения. Чтобы узнать о необходимых разрешениях, см. запись "Remote PowerShell" в статье Инфраструктура Exchange и разрешения PowerShell.

Совет

Возникли проблемы? Попросите о помощи на Exchange Server форумах.

Использование Командная консоль Exchange для включения или отключения удаленного доступа PowerShell для пользователя

В этом примере отключает удаленный доступ к PowerShell для пользователя с именем Therese Lindqvist.

Set-User "Therese Lindqvist" -RemotePowerShellEnabled $false

В этом примере включается удаленный доступ PowerShell для пользователя с именем Sirirat Kitjakarn.

Set-User "Sirirat Kitjakarn" -RemotePowerShellEnabled $true

Использование оболочки управления Exchange для отключения удаленного доступа к PowerShell для многих пользователей

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

  • Фильтрация пользователей на основе существующего атрибута. Этот метод предполагает, что все целевые учетные записи пользователей имеют уникальный фильтруемый атрибут. Некоторые атрибуты, такие как должность, отдел, адрес и телефонный номер, отображаются только при использовании командлета Get-User. Другие же, такие как атрибуты от CustomAttribute1 до CustomAttribute15, отображаются только при использовании командлета Get-Mailbox.

  • Используйте список определенных пользователей. После создания списка определенных пользователей этот список можно использовать для отключения доступа к удаленной PowerShell.

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

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

$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>
$<VariableName> | foreach {Set-User -RemotePowerShellEnabled $false}

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

$DSA = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like '*Sales Associate*')"
$DSA | foreach {Set-User -RemotePowerShellEnabled $false}

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

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

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

В этом примере используется текстовый файл C:\My Documents\NoPowerShell.txt для идентификации пользователей по основному имени пользователя (UPN). Текстовый файл должен содержать по одному upN в каждой строке, как это:

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

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

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

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

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

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

В этом примере отображается состояние удаленного доступа PowerShell пользователя с именем Сара Джонс.

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

Чтобы отобразить состояние удаленного доступа 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'