Установка модуля Exchange Online PowerShell: пошаговая инструкция
By Mirko Peters ·
Установите модуль Exchange Online PowerShell командой Install-Module ExchangeOnlineManagement: требования, область установки, проверка версии, обновление и исправление ошибок.
Automatically translated with AI from the original post. Read the English original
Чтобы установить модуль Exchange Online PowerShell, откройте PowerShell от имени администратора и выполните Install-Module -Name ExchangeOnlineManagement. Модуль установится для всех пользователей компьютера. Если запустить PowerShell от имени администратора не получается, добавьте -Scope CurrentUser, и модуль установится только для вашей учётной записи. Статья адресована администраторам Exchange и Microsoft 365, которые настраивают новый административный компьютер, jump-сервер или build-агент. В ней рассмотрены требования, шаги установки и проверки, обновление и удаление модуля, а также ошибки, с которыми чаще всего сталкиваются.
Ключевые выводы
- Установите модуль Exchange Online PowerShell командой Install-Module -Name ExchangeOnlineManagement в окне PowerShell, запущенном от имени администратора, для всех пользователей.
- Если прав администратора нет, используйте -Scope CurrentUser. Обновляя модуль позже, указывайте ту же область установки, что и при установке.
- Windows PowerShell 5.1 требует .NET Framework 4.7.2. Поддержка PowerShell 7 зависит от версии модуля: для версии 3.10.0 и новее нужен PowerShell 7.6.0 или новее.
- Проверьте результат командой Get-InstalledModule: она покажет версию модуля и то, в каком расположении он находится, для всех пользователей или для текущего пользователя.
- Модулю больше не нужна базовая проверка подлинности в WinRM, так как его подключения используют REST.
Что представляет собой модуль и что нужно подготовить заранее
Модуль называется ExchangeOnlineManagement. В документации Microsoft он называется модулем Exchange Online PowerShell V3. Модуль подключает вас к Exchange Online PowerShell, к Security & Compliance PowerShell и к PowerShell для встроенной надстройки безопасности для локальных почтовых ящиков. Он использует современную проверку подлинности, поэтому работает как с многофакторной аутентификацией, так и без неё.
Одно изменение затрагивает старые скрипты. Microsoft сообщает, что с октября 2023 года подключения через REST API заменили прежние подключения удалённого PowerShell с базовой проверкой подлинности. Подключениям модуля не нужна базовая проверка подлинности в WinRM, поэтому включать её там не требуется.
Перед установкой проверьте следующие требования:
- Версия PowerShell и .NET. Windows PowerShell 5.1 требует .NET Framework 4.7.2. В Windows 11, Windows Server 2022 и Windows Server 2025 предустановлена версия 4.8.x, так что здесь всё в порядке. PowerShell 7 тоже работает; минимальная версия зависит от версии модуля, и об этом рассказано в следующем разделе.
- Политика выполнения. На странице Microsoft сказано, что без подходящей политики выполнения появляется ошибка «Files cannot be loaded because running scripts is disabled on this system». Рекомендуемое исправление:
Set-ExecutionPolicy RemoteSigned, выполняемая от имени администратора. Прежде чем что-либо менять, прочитайте страницу Microsoft о политиках выполнения, а если компьютер управляется, сначала согласуйте изменения со службой безопасности. - PowerShellGet и PackageManagement. Для REST-подключений в Windows нужен PowerShellGet, а PowerShellGet зависит от PackageManagement. Без них может появиться ошибка об отсутствующем командлете
Update-ModuleManifest. Microsoft также указывает, что предварительные версии этих двух модулей могут вызывать проблемы с подключением, и приводит команду для просмотра установленных версий:Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions. - TLS 1.2. В Windows PowerShell 5.1 на старых версиях Windows PowerShell Gallery требует TLS 1.2 или более позднюю версию. Если загрузка завершается ошибкой подключения на старом сервере, в первую очередь проверьте именно это.
Очень старая система — тупик. Windows 7 SP1 и Windows Server 2008 R2 SP1 поддерживают только версию модуля 2.0.3, и Microsoft указывает, что эта версия не может подключаться, так как в ней нет поддержки REST.
Какая версия PowerShell подходит для какой версии модуля
Windows PowerShell 5.1 работает со всеми версиями модуля при соблюдении требования к .NET, описанного выше. Для PowerShell 7 Microsoft приводит следующее соответствие:
- Модуль 3.10.0 или новее требует PowerShell 7.6.0 или новее, который использует .NET 10.
- Модули от 3.5.0 до 3.9.2 требуют PowerShell 7.4.0 или новее, который использует .NET 8.
- Модули от 3.0.0 до 3.4.0 требуют PowerShell 7.2.0 или новее, который использует .NET 6.
- Модуль 2.0.4 и более поздние версии линейки 2.x требуют PowerShell 7.0.3.
Поэтому, если вы установили последний модуль на компьютере с PowerShell 7.4, ожидайте проблем. Либо обновите PowerShell, либо установите более старую версию модуля с параметром -RequiredVersion. На момент написания Microsoft указывает версию 3.10.1 как текущую. Проверьте страницу модуля, чтобы узнать актуальный номер на момент вашего чтения.
Microsoft также поддерживает модуль в Linux и macOS. В Linux подключение через прокси требует версию модуля 3.0.0 или новее. В обеих системах Connect-IPPSSession, а вместе с ним Security & Compliance PowerShell, недоступен в PowerShell 7. Если вы управляете Exchange Online с Mac, это единственное ограничение, которое нужно учесть при планировании инструментов.
Windows 10 заслуживает короткого замечания. Клиентские редакции перестали получать поддержку в октябре 2025 года, и Microsoft заявляет, что они не поддерживают .NET 8.0 и .NET 10.0. Для модуля 3.5.0 и новее с PowerShell 7.4 или новее работают только редакции Enterprise и IoT LTSC, которые ещё находятся в периоде поддержки.
Проверьте версию PowerShell перед установкой
Двухминутная проверка избавит от лишних догадок позже. В окне, где вы планируете работать, выполните $PSVersionTable.PSVersion, чтобы узнать, какую версию PowerShell вы используете. Сравните результат с таблицей соответствия выше. В Windows PowerShell 5.1 также нужно знать версию PowerShellGet, поэтому выполните Get-InstalledModule PowerShellGet -AllVersions. Если эта команда показывает предварительную версию, удалите её или обновите до стабильного выпуска, прежде чем продолжить. На странице модуля Microsoft предварительные сборки PowerShellGet и PackageManagement названы источником проблем с подключением.
Запишите результат рядом с именем компьютера, если вы управляете более чем несколькими серверами. Когда через три месяца коллега сообщит о неудачном подключении, вы сможете сравнить версии за считанные секунды.
Пошаговая установка модуля Exchange Online PowerShell
Эти шаги работают в Windows PowerShell 5.1 и в PowerShell 7.
- Откройте PowerShell. Выберите Запуск от имени администратора, если хотите установить модуль для всех пользователей. Пропустите этот шаг, если планируете установку только для текущего пользователя.
- Если это первый модуль, который вы устанавливаете на компьютере, сначала обновите PowerShellGet, затем закройте и снова откройте PowerShell. Microsoft рекомендует именно такой порядок перед первой установкой.
- Выполните
Install-Module -Name ExchangeOnlineManagementдля всех пользователей. Если нужно только для вашей учётной записи, выполнитеInstall-Module -Name ExchangeOnlineManagement -Scope CurrentUser. - Отвечайте на любые запросы, которые PowerShell покажет во время установки. Для успешной загрузки ваша организация должна разрешать доступ к PowerShell Gallery.
- Проверьте установку командой
Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation. - Посмотрите строку
InstalledLocation. Путь в%ProgramFiles%\WindowsPowerShell\Modules\означает, что модуль установлен для всех пользователей. Путь в папке «Документы» означает, что модуль установлен только для текущего пользователя. - Проверьте подключение в новом окне командой
Connect-ExchangeOnline -UserPrincipalName admin@contoso.com. Подробности о подключении см. в статье Connect to Exchange Online PowerShell.
Хотите попробовать сборку предварительной версии? Добавьте -AllowPrerelease. Чтобы выбрать конкретную预览 версию, укажите ее вместе с -RequiredVersion. Команда Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease покажет все доступные версии, а без -AllowPrerelease будут показаны только общедоступные версии. Не устанавливайте предварительную сборку на рабочий сервер администрирования без веских причин. Сначала проверьте ее на свободном компьютере.
Обновление и удаление модуля
Microsoft регулярно выпускает новые версии модуля, а описание изменений на его странице показывает, что именно изменилось. Например, в версии 3.7.0 справка по командам перестала загружаться по умолчанию, а в версии 3.9.2 параметр UseRpsSession объявлен устаревшим. Обновление выполняется одной командой: Update-Module -Name ExchangeOnlineManagement. Для установки только для текущего пользователя добавьте -Scope CurrentUser. Microsoft рекомендует использовать ту же область действия, что и при установке. Несовпадение может оставить модуль установленным в обоих расположениях, и тогда будет непонятно, какой из них использует PowerShell.
Поэтому проверку Get-InstalledModule из шага 5 стоит выполнять до и после обновления. Если вы видите две версии, выясните, к какой области действия относится каждая из них.
Чтобы удалить модуль, выполните Uninstall-Module -Name ExchangeOnlineManagement. Если модуль был установлен для всех пользователей, выполняйте команду от имени администратора. После этого закройте открытые окна PowerShell, поскольку уже загруженный модуль остается в памяти до завершения сеанса.
Устранение распространенных ошибок установки
На странице модуля Microsoft перечислены некоторые конкретные ошибки и способы их устранения.
- «No match was found for the specified search criteria and module name 'ExchangeOnlineManagement'». Выполните
Register-PSRepository -Default, чтобы снова зарегистрировать PowerShell Gallery как репозиторий. Затем повторите установку. - Ошибки о PowerShellGetFormatVersion или о невозможности загрузить провайдеры. Обновите PowerShellGet и перезапустите PowerShell.
- Загрузка завершается с ошибкой на старом компьютере с Windows PowerShell 5.1. Для PowerShell Gallery требуется TLS 1.2 или более поздняя версия. Microsoft приводит ссылку на запись в блоге о поддержке TLS в галерее, где есть подробности.
- «Files cannot be loaded because running scripts is disabled on this system». Настройте политику выполнения, как описано выше, от имени администратора.
- «Cannot find a cmdlet Update-Manifest» или похожее сообщение о
Update-ModuleManifestпри подключении. Отсутствует PowerShellGet или PackageManagement. Установите оба компонента и перезапустите PowerShell.
Если установка прошла успешно, но позднее подключение завершается странной ошибкой сборки, причина обычно в другом модуле в том же сеансе. Откройте новое окно и сначала выполните подключение.
Распространённые ошибки
- Смешивание областей действия. Если сначала установить модуль для всех пользователей, а затем обновлять его с
-Scope CurrentUser, на компьютере окажутся две версии. Выберите одну область действия и придерживайтесь ее. - Использование версии PowerShell, не подходящей для модуля. Новейший модуль со старой версией PowerShell 7 завершается с ошибками, которые похожи на ошибки подключения. Сравните свои версии с таблицей выше.
- Установка предварительной версии на рабочем сервере. Предварительные версии предназначены для тестирования. Для повседневной работы используйте общедоступную версию.
- Игнорирование PowerShellGet. Отсутствующая или предварительная версия PowerShellGet может нарушить REST-подключения, как описано на странице Microsoft. Если свежая установка не подключается, проверьте ее в первую очередь.
- Использование устаревших руководств. Инструкции, в которых предлагается включить базовую проверку подлинности в WinRM, описывают устаревший метод удаленного PowerShell. Он вам не нужен.
Связанные темы для изучения
- Подключение с помощью модуля: после установки следующий вопрос — как выполнить вход, с MFA или без него. Это описано в статье о модуле Exchange Online PowerShell и в сопутствующей статье о подключении.
- Аутентификация только приложения: для запланированных скриптов нужны сертификат или управляемая идентичность, а не введенный вручную пароль.
- Использование модуля в PowerShell 7 на Linux и macOS: поддерживаемые версии зависят от операционной системы, поэтому сначала проверьте список совместимости.
- Управление доступом к PowerShell: администратор Exchange может включить или отключить доступ к Exchange Online PowerShell для каждого пользователя.
- Регулярное обновление модулей: установите регулярное напоминание о проверке новых версий модуля, так как Microsoft время от времени повышает минимальную версию PowerShell.
Следующий шаг
Чтобы установить модуль Exchange Online PowerShell, выполните Install-Module -Name ExchangeOnlineManagement, проверьте установку командой Get-InstalledModule и сохраняйте один и тот же параметр области действия (scope) при каждом последующем обновлении. Затем подключитесь командой Connect-ExchangeOnline в новом окне и выполните Get-AcceptedDomain, чтобы убедиться, что настройка работает.