Как подключиться к Exchange Online с помощью PowerShell

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

Как установить и подключиться к Exchange Online PowerShell

Как IT-специалист, ваши административные обязанности Microsoft 365 вероятно охватывают Exchange Online. Хотя большинство этих задач можно выполнить, используя веб-сайт Центра администрирования Exchange, есть большие эффективности, доступные через командную строку, особенно сценарного программирования!

Advertisement

Предварительные требования

Вы можете подключиться к Exchange Online так же, как к любому другому сервису Office 365, используя стандартный cmdlet Connect-*. Однако есть несколько предварительных условий, о которых следует помнить при установке и использовании Exchange Online PowerShell.

За годы существования было выпущено несколько версий этих модулей. Версия 2.0.5 и более ранние известны как модуль Exchange Online PowerShell V2 (EXO V2). Версия 3.0.0 и более поздние называются модуль Exchange Online PowerShell V3 (EXO V3).

Мы сосредоточимся на этом более новом модуле, так как он поддерживает многофакторную аутентификацию (MFA), включает улучшения производительности по сравнению с предыдущими версиями и является более безопасным! Кроме того, он поддерживается на последних версиях PowerShell 7.x. Кроме того, ряд новых cmdlet’ов (EXO-*) позволяют ИТ-специалистам быть более быстрыми и продуктивными при выполнении задач.

Установка модуля PowerShell Exchange Online с помощью ‘Install-Module’

Как я упоминал, я сосредоточусь на последнем модуле “V3” в оставшейся части этой статьи. Исходя из шагов, которые вы ранее выполнили на конкретном компьютере, есть потенциал для выполнения от 2 до 3 основных шагов. Я пройдусь по шагам по отдельности, чтобы вы могли сразу начать в зависимости от вашей среды.

Реклама

I am working on a Windows 11 22H2 virtual machine (VM) in my Hyper-V lab. This machine is Azure-AD joined to my Microsoft 365 Developer tenant. This will allow me to show you the procedure and also include some basic commands at the end of this article to demonstrate how it operates.

I am using the latest version of PowerShell, version 7.3.4, at the time of writing. This will enable me to install the Exchange Online PowerShell module. All I need is a PowerShell window!

  • Первый шаг, который мы должны выполнить, – это установить нашу политику выполнения. Нам нужно изменить настройку политики с помощью командлета Set-ExecutionPolicy:
Set-ExecutionPolicy RemoteSigned
  • Затем запустите команду Get-Module, чтобы проверить, какие модули установлены.
Get-Module
Running Get-Module to see what modules are installed (Image credit: Petri/Michael Reinders)
  • I have only the base set of modules installed on my computer. So, I need to install the ‘ExchangeOnlineManagement‘ module. Let’s do this with the Install-Module command:
Install-Module -Name ExchangeOnlineManagement
Running Connect-ExchangeOnline to connect to my tenant (Image credit: Petri/Michael Reinders)

Примечание: Поскольку я использую “недоверенный репозиторий”, мне нужно указать, что я хочу загрузить это из репозитория “PSGallery”. Я ввел ‘A’, чтобы выбрать ‘Да для всех’.

Загрузка модуля с помощью ‘Import-Module’

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

Реклама

  • Мы можем импортировать модуль, используя команду Import-Module.
  • Затем мы можем запустить еще одну команду Get-Module, чтобы получить подтверждение.
Import-Module ExchangeOnlineManagement
After importing the module, we confirm it is installed and loaded (Image credit: Petri/Michael Reinders)

И вот, мы теперь подтвердили, что модуль готов к использованию!

Подключение к вашему арендатору Exchange Online с помощью ‘Connect-ExchangeOnline’

Последний шаг для завершения процесса получения доступа к информации о вашем арендаторе в Exchange Online – это установить соединение с использованием учетных данных, которые позволяют получить этот доступ. В Azure есть несколько уровней ролей, которые позволяют это сделать. В данном случае я буду использовать свою роль Глобального администратора в рамках моего разработчического арендатора. Эта учетная запись, кстати, дает мне полный доступ к Azure AD и всем службам Microsoft 365 через PowerShell.

Connect-ExchangeOnline -userprincipalname
Connecting to my tenant prompts in-browser authentication (Image credit: Petri/Michael Reinders)
  • Это открыло окно аутентификации в браузере, запрашивающее мое имя пользователя и пароль. Здесь я могу войти с помощью своей учетной записи Глобального администратора.
We’re connected and ready to enter cmdlets (Image credit: Petri/Michael Reinders)

Отлично! Вы увидите некоторый желтый текст, описывающий модуль ‘EXO V3’, и ссылку на документацию, чтобы получить более подробную информацию.

Теперь у нас есть возможность запускать cmdlet PowerShell против нашего арендатора Exchange Online. Далее я рассмотрю некоторые базовые/основные команды, с которых вы можете начать.

Примечание: Если мы всегда думаем о безопасности, лучше завершить сеанс после завершения работы. Отключить сеанс можно, запустив следующую команду перед закрытием оболочки.

Disconnect-ExchangeOnline

Проще простого!

Основные команды оболочки Exchange Online PowerShell

После подключения к модулю PowerShell Exchange Online Version 3 (EXO V3) вы можете начать выполнять командлеты Exchange Online. Давайте сначала перечислим все почтовые ящики в нашем арендаторе.

Поскольку это арендатор разработчика, список довольно небольшой. Обратите внимание, что в обычных, более крупных средах вывод не будет таким полезным. Я к этому вернусь через некоторое время. Кроме того, у нас есть различные статьи PowerShell на Petri, которые могут вам помочь.

Вместо использования ‘устаревшей’ командлеты Get-Mailbox (запланированной к удалению), давайте покажем вам более новые команды в EXO V3. Здесь я использую команду Get-EXOMailbox, затем ‘перенаправляем’ (|) ее на переключатель ‘ft’ (то же самое, что ‘Format-Table’). Использование переключателя ‘Autosize’ также автоматически форматирует ширину столбцов, чтобы соответствовать окну вашей консоли.

Get-EXOMailbox | ft -Autosize
Using Get-EXOMailbox to list our mailboxes (Image credit: Petri/Michael Reinders)

По умолчанию мы получаем ‘ExternalDirectoryObjectId’, ‘UserPrincipalName’ (обычно адрес электронной почты) и псевдоним почты. Давайте попросим его дать нам немного больше информации.

Get-EXOMailbox | Select DisplayName,PrimarySMTPAddress,Alias
Listing additional attributes with the ‘Select’ command (Image credit: Petri/Michael Reinders)

Это дает нам немного более полезной информации, верно? Теперь давайте получим статистику размера почтового ящика с помощью команды Get-EXOMailboxStatistics. Здесь я запускаю первую команду, чтобы собрать все почтовые ящики, затем перенаправляю их в ‘Get-EXOMailboxStatistics’ с его атрибутами по умолчанию, затем снова использую ‘ft’, чтобы сделать это красиво.

Get-EXOMailbox | Get-EXOMailboxStatistics | ft
Mailbox statistics are a cmdlet away – Get-EXOMailboxStatistics (Image credit: Petri/Michael Reinders)

Это дает нам достаточное количество информации о количестве элементов в нашей организации и размере почтового ящика. Есть множество других параметров, которые вы можете использовать, чтобы получить конкретные атрибуты из ваших учетных записей и почтовых ящиков.

Как подключиться к Exchange Online через PowerShell с MFA?

К счастью, вам не нужно ничего особенного делать, чтобы подключиться, когда ваша учетная запись защищена многофакторной аутентификацией (лучше так). Когда вы вводите команду и используете PowerShell 7 или выше, вы увидите появление экрана аутентификации на основе браузера, как показано на моем скриншоте выше.

Если вы случайно используете PowerShell 5.1 или более низкую версию, вы увидите стандартное окно современной аутентификации, где вам нужно будет ввести пароль и выполнить запрос на MFA.

Можно ли подключиться к Exchange Online PowerShell на Mac?

Существует несколько способов установить PowerShell на Mac, но наиболее простым является использование прямых ссылок для загрузки с веб-сайта Microsoft. Начиная с версии 7.2, PowerShell поддерживает Mac с процессорами Apple Silicon.

После установки PowerShell на вашем Mac с macOS 11 Big Sur или более новой версией, вы можете использовать те же инструкции, предоставленные выше, чтобы подключиться к Exchange Online на macOS.

Дополнительные преимущества использования Exchange Online PowerShell

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

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

  • Он может использоваться для автоматизации процессов с помощью сценариев Powershell, что может сэкономить вам время и усилия при работе со сценариями.
  • Он может использоваться для устранения проблем, что поможет вам быстрее решать проблемы.
  • Он может использоваться для настройки вашей среды Exchange Online, что может сделать ее более эффективной и удобной для пользователя.

Если у вас есть какие-либо вопросы или комментарии, пожалуйста, не стесняйтесь оставить комментарий ниже. Спасибо за внимание!

Source:
https://petri.com/connect-to-exchange-online-powershell/