Поиск по сайту:

Подключайтесь к серверам Exchange и Microsoft 365 с помощью Remote PowerShell.


В этой статье мы покажем, как удаленно подключиться к локальному серверу Exchange Server или Microsoft 365 (Exchange Online) из консоли PowerShell.

Как подключиться к серверам Exchange через удаленный PowerShell (без EMS)?

Вы можете использовать командлеты Exchange Management Shell (EMS) для управления локальной организацией Exchange (Exchange Server 2010, 2013, 2016 или 2019). EMS устанавливается как часть инструментов управления Exchange. Если оболочка управления Exchange не установлена на вашем компьютере, вы можете удаленно подключиться к серверу Exchange и импортировать командлеты с хоста Exchange в локальный сеанс PowerShell.

Удаленные подключения на сервере Exchange устанавливаются через отдельный виртуальный каталог IIS (Internet Information Services) под названием PowerShell. По умолчанию используется проверка подлинности Kerberos, а для связи используется WinRM.

Совет. Обратите внимание, что некоторые командлеты EMS не полностью поддерживаются в удаленном сеансе PowerShell. Например, Get-ExchangeCertificate. Чтобы использовать его, вам необходимо установить Exchange Management Shell на свой компьютер.

Прежде чем начать, убедитесь, что ваша локальная политика выполнения PowerShell позволяет запускать локальные сценарии PS. Команда ниже позволяет запускать локальные сценарии для текущего пользователя.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Откройте консоль PowerShell на своем компьютере и выполните следующую команду:

$UserCredential = Get-Credential

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

Создайте удаленный сеанс PowerShell с вашим сервером Exchange:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mun-mbex1.active-directory.ru/PowerShell/ -Authentication Kerberos -Credential $UserCredential

Обратите внимание, что

http

вместо

https

используется для доступа к Web PowerShell.

Убедитесь, что сеанс создан и теперь находится в состоянии Открыт:

Get-PSSession

Импортируйте удаленный сеанс PowerShell в локальный:

Import-PSSession $Session

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

Не забудьте правильно завершить удаленные сеансы PowerShell. Если вы просто закроете консоль Windows PowerShell, не отключая сеанс, вы можете превысить лимит удаленных сеансов PowerShell.

Чтобы завершить сеанс, выполните команду ниже:

Remove-PSSession $Session

Убедитесь, что не осталось запущенных удаленных сеансов PowerShell:

Get-PSSession

Вы можете использовать профиль PowerShell для автоматического импорта командлетов PowerShell из удаленного Exchange в ваш сеанс.

Создайте файл профиля:

New-Item -Path $profile -ItemType file -force

Откройте Microsoft.PowerShell_Profile.ps1 с помощью Блокнота:

notepad $profile

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

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://mun-mbex1.active-directory.ru/PowerShell/ -Authentication Kerberos -Credential (Get-Credential)
Import-PSSession $Session

Подключение к Exchange Online (Microsoft 365) с помощью удаленного PowerShell

Таким же образом вы можете подключиться к своему клиенту Exchange Online (Microsoft 365) для управления почтовыми ящиками, конференц-залами, списками рассылки и другими настройками Microsoft 365.

Давайте узнаем, как удаленно подключиться к Exchange Online из консоли PowerShell с использованием базовой аутентификации без установки модуля Microsoft Exchange Online PowerShell (EXO/EXOv2).

Разрешите запуск локальных сценариев PS:

Set-ExecutionPolicy RemoteSigned

Получите учетные данные администратора Exchange Online:

$UserCredential = Get-Credential

Этому пользователю Azure сначала необходимо разрешить удаленное подключение через PowerShell:

Set-User -Identity maxbak@active-directory.ru -RemotePowerShellEnabled $true

Затем вы можете установить удаленный сеанс PowerShell с Microsoft 365:

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $UserCredential -Authentication Basic -AllowRedirection

Если для вашей учетной записи включена многофакторная аутентификация (Microsoft рекомендует использовать MFA для всех учетных записей администратора), при попытке подключения с помощью

New-PSSession
New-PSSession : [outlook.office365.com] Connecting to remote server outlook.office365.com failed with the following error message : Access is denied.
+ CategoryInfo : OpenError: (System.Manageme....RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotingTransportException + FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed

Затем вам необходимо будет установить модуль Exchange Online PowerShell V2 (EXO V2):

Install-Module ExchangeOnlineManagement

В этом случае для подключения к Exchange Online используется следующий командлет:

Connect-ExchangeOnline -UserPrincipalName maxbak@active-directory.ru -ShowProgress $true

Или вы можете отключить MFA для учетной записи:

Set-MsolUser -UserPrincipalName maxbak@active-directory.ru -StrongAuthenticationRequirements @()

Затем импортируйте удаленный сеанс на консоль:

Import-PSSession $Session

Максимальное количество удаленных подключений PowerShell к Exchange Online ограничено тремя сеансами. Если вы превысите лимит, появится следующая ошибка:

Fail to create a runspace because you have exceeded the maximum number of connections allowed.

Теперь вы можете управлять своими почтовыми ящиками Microsoft 365.

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

Get-PSSession | Remove-PSSession

Статьи по данной тематике