Удаленное подключение к серверу Exchange/Office 365 с помощью PowerShell

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

Удаленное подключение к Exchange из консоли PowerShell (без установки Exchange Management Tools)

Для управления on-premises Exchange (версии Exchange Server 2010, 2013, 2016 и 2019) используются командлеты из модуля Exchange Management Shell (устанавливается как часть Exchange management tools). Если у вас на компьютере не установлен модуль Exchange Management Shell, вы можете удаленно подключиться к серверу Exchange и импортировать командлеты с сервера в свою сессию локальную сессию PowerShell.

В Exchange Server удаленные подключения выполняются через отдельный виртуальный каталог IIS (Internet Information Services), который называется PowerShell . Для аутентфикации по-умолчанию используется Kerberos, а взаимодействие происходит через WinRM.

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

Прежде чем начать, убедитесь, что ваш локальный PowerShell разрешает запускать локальные PS скрипты (Execution Policy). Следующая команда разрешит запуск локальных скриптов для текущего пользователя.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

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

$UserCredential = Get-Credential

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

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

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://msk-exch1.remontka.com/PowerShell/ -Authentication Kerberos -Credential $UserCredential

Обратите внимание, что для доступа к Web PowerShell используется http , а не https .

Проверьте, что сессию создана и имеет State=Opened :

Get-PSSession

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

Import-PSSession $Session

Теперь вы сможете использовать все командлеты Exchange в своем локальном PowerShell сеансе.

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

Для завершения сессии, выполните:

Remove-PSSession $Session

Проверьте, что запущенных сессий PowerShell не осталось:

Get-PSSession

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

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

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

Откройте созданный файл Microsoft.PowerShell_Profile.ps1 с помощью блокнота:

notepad $profile

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

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri http://msk-exch1.remontka.com/PowerShell/ -Authentication Kerberos -Credential (Get-Credential)
Import-PSSession $Session

Удаленное подключение к Exchange Online (Office 365) из Powershell

Похожим способом вы можете подключаться к своем тенанту Exchange Online (Office 365) для управления ящиками, переговорными комнатами, списками рассылки, и другими параметрами Office 365.

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

Сначала нужно разрешить запуск локальных скриптов:
Set-ExecutionPolicy RemoteSigned

Запросить имя и пароль учетной записи с правами администратора Exchange Online.

$UserCredential = Get-Credential

Для данного пользователя Azure должно быть предварительно разрешено удаленное подключение через PowerShell:

Set-User -Identity [email protected] -RemotePowerShellEnabled $true

Теперь можно установить удаленную сессию PowerShell с Office 365:

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

Если для вашего аккаунта включена мультифакторная аутентификация (Multi-Factor Authentication -MFA рекомендуется Microsoft для всех аккаунтов администраторов), то при подключении через New-PSSession появится ошибка:
New-PSSession : [outlook.office365.com] Connecting to remote server outlook.office365.com failed with the following error message : Access is denied._x000D_+ 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 [email protected] -ShowProgress $true

Либо можно отключить MFA для аккаунта:

Set-MsolUser -UserPrincipalName [email protected] -StrongAuthenticationRequirements @()

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

Import-PSSession $Session

Максимально количество удаленных PowerShell подключений к организации Exchange Online ограничено тремя сессиями. При превышении появится ошибка:
Fail to create a runspace because you have exceeded the maximum number of connections allowed.

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

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

Get-PSSession | Remove-PSSession

admin

Share
Published by
admin

Recent Posts

Лучшие дистрибутивы Linux

Если говорить о том, какие лучшие дистрибутивы Linux мы знаем, то этот список может быть…

1 неделя ago

Лучшие браузеры для Ubuntu

Хотя Ubuntu и поставляется со встроенным обозревателем Firefox многие пользователи считают что это не самая…

1 неделя ago

Установка Remmina Ubuntu 16.04 или 16.10

Что такое Remmina? Remmina — это совершенно бесплатный и свободный клиент так называемого удаленного рабочего…

1 неделя ago

Плюсы Ubuntu

Как мы знаем, Ubuntu это самая популярная сборка из систем на базе ядра Linux. У…

1 неделя ago

Выбираем ноутбук для Linux

Выбор ноутбука для каждого пользователя это довольно кропотливый процесс. Люди стараются подобрать ноутбук который будет…

1 неделя ago

Установка Linux рядом с Windows 10

Если вы решили ознакомиться с операционной системой Linux более детально и задались вопросом как установить…

1 неделя ago