Как подключить службы Exchange Online Office 365 к PowerShell

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

Многие администраторы используют PowerShell (предоставляемый Microsoft) для управления сервером Microsoft Exchange в интерфейсе командной строки. Однако эти стандартные команды для среды Exchange Server в локальной сети не работают для Exchange Online, работающего в облачном сервисе Microsoft 365. Для использования PowerShell с Office 365 вам необходимо установить специальные модули PowerShell для подключения к Office 365. Прочтите этот пост, чтобы узнать о различных методах подключения к Exchange Online PowerShell.

Требования

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

  • Вы должны использовать PowerShell на Windows 7 SP1 или более новых версиях рабочих станций и Windows Server 2008 R2 SP1 или более новых версиях серверных Windows. Обратите внимание, что помимо установки обновленной версии Windows Management Framework 3.0, 4.0 или 5.1, вам необходимо установить .NET Framework 4.5 или более позднюю версию.
  • Требуется интернет-соединение. Для подключения с вашего локального компьютера к целевому хосту должен быть открыт TCP-порт 80.
  • Доступ к Exchange Online PowerShell должен быть включен для текущего пользователя (по умолчанию такой доступ включен для администраторов).

Вы можете вручную включить доступ к подключению к Exchange Online PowerShell для конкретного пользователя с помощью команды:

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

Принцип работы

Вы можете подключиться к Exchange Online PowerShell, но этот процесс сложнее, чем использование PowerShell для управления локальным сервером Exchange. Однако вы можете использовать встроенную консоль PowerShell для управления удаленными облачными инфраструктурами. В этом случае консоль называется удаленным PowerShell или PowerShell Remoting. Процесс инициации сеанса удаленного PowerShell для Office 365 и Exchange Online немного отличается. Прежде чем вы сможете открыть удаленный сеанс Office 365, вам следует загрузить и установить специальные компоненты. К счастью, необходимые для инициации удаленного Exchange Online PowerShell cmdlet’ы загружаются автоматически при создании сеанса удаленного PowerShell. Для управления Microsoft Office 365 и Microsoft Exchange Online используются разные наборы cmdlet’ов PowerShell.

Основное обоснование подключения к Microsoft Exchange Online в PowerShell включает следующее:

  • Создание удаленного сеанса Exchange Online в PowerShell, открытого на вашем локальном компьютере.
  • Установка параметров подключения, передача аутентификации.
  • Импорт cmdlet’ов PowerShell, необходимых для удаленного управления Exchange Online.

В сегодняшнем блоге мы будем выполнять команды PowerShell в Windows 10.

Ручная настройка

Давайте сначала рассмотрим ручной метод, чтобы лучше понять принцип конфигурации.

  1. Откройте Windows PowerShell. Вы можете сделать это как минимум двумя способами.
    1. Щелкните Пуск, введите cmd, щелкните правой кнопкой мыши на элементе Командная строка и выберите Запуск от имени администратора в контекстном меню.
    2. Перейдите к Пуск > Windows PowerShell. Щелкните правой кнопкой мыши Windows PowerShell и выберите Запуск от имени администратора, чтобы убедиться, что вы можете выполнять команды PowerShell без ограничений.
  2. Включите выполнение сценариев (лучше выполнять эту команду в начале подготовки PowerShell для управления Exchange Online и Office 365), иначе в будущем при выполнении команды Import-PSSession вы получите ошибку:

    Import-PSSession : Файлы не могут быть загружены, так как выполнение сценариев отключено на этой системе. Укажите действительный сертификат, с помощью которого подписываются файлы.

  3. Чтобы выполнить сценарии, режим выполнения должен быть установлен на RemoteSigned.

    Set-ExecutionPolicy RemoteSigned

  4. Нажмите Y, чтобы подтвердить изменение политики при запросе. Также можно использовать команду Set-ExecutionPolicy Unrestricted, чтобы использовать политику Unrestricted.

    По умолчанию, режим выполнения политики — Restricted.

  5. Запустите команду в PowerShell, чтобы получить учетные данные и введите свои учетные данные администратора во всплывающем окне для доступа к Exchange Online. Пользователь должен иметь глобальные административные разрешения в Office 365.

    $Credential=Get-Credential
    Введенные учетные данные будут сохранены в переменной и использованы в следующей команде как $Credential.

  6. Вы должны создать удаленную сеанс PowerShell с помощью cmdlet New-PSSession и выполнить следующую команду:

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

    Обратите внимание, что в этой команде установлен целевой URL-адрес сервера Exchange Online, работающего в облаке, который должен принять запрос. После выполнения команды серверы облака Microsoft Office 365 предоставят вам доступ к соответствующему виртуальному серверу Exchange Online, связанному с вашей учетной записью.

  7. Команды PowerShell Exchange Online должны быть импортированы в текущую сессию с помощью команды:

    Import-PSSession $Session

  8. Вы можете видеть полосу прогресса во время получения команд.
  9. После успешного выполнения команды вы увидите следующее сообщение.
    Примечание:
    Если вы используете MFA для вашей учетной записи, стандартные cmdlet’ы, объясненные выше, не будут работать. Если вы хотите подключить Exchange Online в PowerShell с использованием MFA, выполните следующую команду:

    Connect-EXOPSSession -UserPrincipalName YOUR_UPN

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

    Будьте внимательны, когда используете этот модуль, сеанс заканчивается через один час, что может быть неудобно для запуска длинных сценариев. Рассмотрите возможность использования доверенных IP-адресов (т.е. IP-адресов вашей организации), чтобы обойти MFA при подключении с сети вашей компании к Exchange Online PowerShell. MFA (Многократная аутентификация) – это передовой метод аутентификации, который добавляет второй уровень безопасности. После ввода пароля код подтверждения отправляется на мобильный телефон пользователя, и пользователь должен ввести код подтверждения, чтобы подтвердить учетную запись и получить доступ к облачным службам Office 365.

  10. После подключения к Office 365 и Exchange Online вы можете управлять вашим облачным окружением Office 365. Давайте проверим, что мы правильно подключились к Exchange Online и выведем список почтовых ящиков пользователей, например.

    Get-Mailbox

    Вы можете просмотреть все доступные командлеты для Exchange Online PowerShell с помощью следующей команды:

    Get-Command -Module tmp*

    Имена командлетов PowerShell для Exchange Online не конвертируются.

  11. Когда заканчиваете работу с Exchange 365, отключите сеанс. Это рекомендуемая практика.

    Remove-PSSession $Session

    К сожалению, после выполнения этой команды не отображаются сообщения. Вы можете проверить, отключен ли сеанс, запустив команду Get-MailBox. Если сеанс отключен, вы получите ошибку, объясняющую, что нельзя выполнять командлеты Exchange Online после отключения.

Почему следует разорвать сеанс? Ну, просто потому что количество одновременных активных сеансов, которые могут быть открыты одновременно, ограничено тремя. Если вы откроете три сеанса Exchange Online PowerShell одновременно и не разорвете ни один из них, когда они не используются, вам придется ждать, пока один из этих сеансов не истечет, прежде чем вы сможете снова подключиться к Exchange Online PowerShell из нового консоли PowerShell.

Автоматическая конфигурация

Теперь, когда вы знаете принцип того, как подключиться к Exchange Online PowerShell вручную, вы можете использовать автоматический метод. Преимущество этого метода заключается в меньшем количестве команд, которые вам нужно ввести.

  1. Скачать сценарий с веб-сайта Microsoft. В данном случае имя файла сценария – ConnectExchangeOnlinePowerShell.ps1.
  2. Перейдите в каталог, где находится сценарий; в нашем примере сценарий сохранен в C:\temp_win\.
  3. Перед запуском сценария измените политику выполнения сценария (аналогично тому, что показано в первом методе), иначе вы получите ошибку:

    Файл C:\temp_win\ConnectExchangeOnlinePowerShell.ps1 не является цифровым образом подписанным. Вы не можете запустить этот сценарий на текущей системе.

    Вы можете применить политику выполнения Bypass, чтобы избежать этой проблемы:


    Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

  4. Введите Y для подтверждения изменения политики выполнения.
  5. После этого вы сможете запустить скрипт. Если вы не используете MFA, запустите скрипт без дополнительных аргументов:

    .\ConnectExchangeOnlinePowerShell.ps1

    Если в вашей среде Office 365 используется MFA (Multi-Factor Authentication), попробуйте команду:


    .\ConnectExchangeOnlinePowerShell.ps1 -MFA

  6. Теперь, когда вы успешно подключились к Exchange Online, вы можете управлять учетными записями пользователей, их почтовыми ящиками и т. д. Например, вы можете перечислить почтовые ящики ваших пользователей:

    Get-Mailbox

    Этот скрипт можно использовать для планирования и автоматизации задач. Например, вы можете подключиться к Exchange Online без ввода учетных данных в интерактивном окне, как показано выше. Вы можете ввести свой логин и пароль в командной строке как параметры команды при выполнении скрипта:


    ./ConnectExchangeOnlinePowerShell.ps1 -UserName admin@your_domain.com -Password your_password

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

  7. Когда вы закончите работу с Exchange Online в PowerShell, не забудьте завершить сеанс:

    ./ConnectExchangeOnlinePowerShell.ps1 -Отключить

Альтернативный метод

Давайте рассмотрим еще один метод, который можно использовать для подключения к Exchange Online в PowerShell. Этот метод можно рассматривать как модификацию первого метода.

  1. Создайте новый профиль для PowerShell с функцией:

    New-item -type file -force $profile

  2. Отредактируйте файл конфигурации профиля в текстовом редакторе, чтобы добавить функцию с названием Connect-EXOnline:

    notepad $profile

  3. Добавьте следующий контент в файл конфигурации профиля PowerShell и измените [email protected] на ваше имя учетной записи, затем сохраните текстовый файл.

    Функция Connect-EXOnline
    {
    $credentials = Get-Credential -Credential [email protected]
    Write-Output “Получение командлетов Exchange Online”
    $Session = New-PSSession -ConnectionUri https://outlook.office365.com/powershell-liveid/ `
    -ConfigurationName Microsoft.Exchange -Credential $credentials `
    -Authentication Basic -AllowRedirection
    Import-PSSession $Session
    }

  4. Закройте текущее окно PowerShell и откройте новое окно PowerShell от имени администратора. Запустите команду для подключения к Exchange Online PowerShell:

    Connect-ExOnline
    Введите пароль во всплывающем окне.

  5. Когда закончите работу с Exchange Online PowerShell, завершите сеанс командой:

    Get-PSSession | Remove-PSSession

Заключение

Exchange Online PowerShell – хорошая альтернатива веб-интерфейсу Центра администрирования Exchange. С помощью PowerShell Office 365 и Exchange Online PowerShell можно выполнять массовые операции и действия с несколькими объектами, используя одну команду или сценарий. Сегодняшний блог охватывает три метода подключения к Exchange Online PowerShell, один из которых автоматизирован. Принцип работы каждого метода аналогичен и состоит из трех основных шагов: создание сеанса удаленного PowerShell, аутентификация и импорт командлетов Exchange Online PowerShell.

Важным рекомендацией является отключение сеанса удаленного PowerShell после завершения работы с Exchange Online PowerShell, чтобы избежать ситуации, когда все сеансы заняты, и открытие нового удаленного сеанса Exchange Online PowerShell невозможно. Наличие сервера Exchange в облаке – надежное решение, но даже в этом случае рекомендуется создать резервную копию вашего сервера Exchange, чтобы защитить ваши данные от случайного удаления и других бедствий.

Source:
https://www.nakivo.com/blog/how-to-connect-office-365-exchange-online-powershell/