Подключайтесь к серверам 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-PSSessionNew-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



