Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Модуль PowerShell Exchange Online (с 2022 г. также известный как модуль PowerShell V3 Exchange Online или модуль EXO V3) использует современную проверку подлинности и работает с многофакторной проверкой подлинности (MFA) или без нее, для подключения ко всем облачным средам PowerShell, связанным с Exchange. Exchange Online PowerShell, Security & Compliance, PowerShell и PowerShell для встроенной надстройки безопасности для локальных почтовых ящиков.
Инструкции по подключению с использованием модуля см. в следующих статьях:
Подключение к PowerShell Exchange Online
Совет
Инструкции по подключению для PowerShell во встроенной надстройке безопасности для локальных почтовых ящиков такие же, как и инструкции по подключению для Exchange Online PowerShell.
Подключение к PowerShell безопасности и соответствия требованиям
Использование управляемых удостоверений Azure для подключения к Exchange Online PowerShell
В оставшейся части этой статьи описано, как работает модуль, как установить и обслуживать модуль, а также оптимизированные командлеты Exchange Online, доступные в модуле.
Подключения REST API в модуле EXO V3
Exchange Online PowerShell и Security & Compliance PowerShell используют подключения REST API для всех командлетов с 2023 года.
Для подключений REST API требуются модули PowerShellGet и PackageManagement. Дополнительные сведения см. в статье PowerShellGet для подключений на основе REST в Windows.
Командлеты в подключениях REST API имеют следующие преимущества перед предыдущими аналогами:
- Повышенная безопасность: встроенная поддержка современной проверки подлинности и отсутствие зависимости от удаленного сеанса PowerShell. PowerShell на клиентском компьютере не требует базовой проверки подлинности в WinRM.
-
Повышенная надежность: временные сбои используют встроенные повторные попытки, поэтому сбои или задержки сведены к минимуму. Например, вы можете:
- Сбои, вызванные задержками сети.
- Задержки из-за больших запросов, выполнение которых занимает много времени.
- Повышение производительности: подключения REST API позволяют избежать настройки пространства выполнения PowerShell.
В следующей таблице сравниваются преимущества командлетов REST API с недоступными удаленными командлетами PowerShell и эксклюзивными командлетами Get-EXO* в модуле EXO V3.
| Командлеты удаленного PowerShell | Командлеты Get-EXO* | Командлеты REST API | |
|---|---|---|---|
| Безопасность | Наименее защищенный | Высокий уровень безопасности | Высокий уровень безопасности |
| Производительность | Низкая производительность | Высокая производительность | Средняя производительность |
| Надежность | Наименее надежный | Высокая надежность | Высокая надежность |
| Функция | Доступны все параметры и выходные свойства | Ограниченные доступные параметры и выходные свойства | Доступны все параметры и выходные свойства |
Командлеты REST API имеют те же имена командлетов и работают так же, как их удаленные эквиваленты PowerShell, поэтому вам не нужно обновлять имена командлетов или параметры в сценариях.
Совет
Командлет Invoke-Command не работает в подключениях REST API. Альтернативные варианты см. в статье Обходные пути для Invoke-Command сценариев в подключениях REST API.
Несколько командлетов в Exchange Online PowerShell обновлены экспериментальным параметром UseCustomRouting. Этот переключатель направляет команду прямо на нужный сервер почтовых ящиков. При этом может повышаться общая производительность. Экспериментально используйте переключатель UseCustomRouting .
При применении UseCustomRoutingSwitch можно использовать только следующие значения для идентификатора почтового ящика:
- Имя участника-пользователя (UPN)
- Адрес электронной почты
- GUID почтового ящика
Ключ UseCustomRouting доступен только в следующих командлетах PowerShell для Exchange Online:
- Get-Clutter
- Get-FocusedInbox
- Get-InboxRule
- Get-MailboxAutoReplyConfiguration
- Get-MailboxCalendarFolder
- Get-MailboxFolderPermission
- Get-MailboxFolderStatistics
- Get-MailboxMessageConfiguration
- Get-MailboxPermission
- Get-MailboxRegionalConfiguration
- Get-MailboxStatistics
- Get-MobileDeviceStatistics
- Get-UserPhoto
- Remove-CalendarEvents
- Set-Clutter
- Set-FocusedInbox
- Set-MailboxRegionalConfiguration
- Set-UserPhoto
Используйте командлет Get-ConnectionInformation, чтобы получить сведения о подключениях к Exchange Online PowerShell и Security & Compliance. Этот командлет необходим, так как командлет Get-PSSession в Windows PowerShell не возвращает сведения о подключениях REST API.
Сценарии, в которых можно использовать Get-ConnectionInformation, описаны в следующей таблице.
Сценарий Ожидаемый результат Выполняется после команд Connect-ExchangeOnline или Connect-IPPSSession . Возвращает один объект сведений о подключении. Запуск после нескольких команд Connect-ExchangeOnline или Connect-IPPSSession . Возвращает коллекцию объектов сведений о подключении. Используйте переключатель SkipLoadingFormatData в командлете Connect-ExchangeOnline , чтобы избежать загрузки данных формата и ускорить выполнение команд Connect-ExchangeOnline .
Командлеты на основе REST API имеют 15-минутное время ожидания, что может повлиять на массовые операции. Например, следующая команда Update-DistributionGroupMember для обновления 10 000 участников группы рассылки может привести к превышению времени ожидания:
$Members = @("member1","member2",...,"member10000") Update-DistributionGroupMember -Identity DG01 -Members $MembersВместо этого используйте команду Update-DistributionGroupMember , чтобы обновить меньшее число участников, а затем добавьте оставшиеся члены по отдельности с помощью команды Add-DistributionGroupMember . Например, вы можете:
Update-DistributionGroupMember -Identity DG01 -Members $Members[0..4999] $Remaining = $Members[-5000..-1] foreach ($Member in $Remaining) { Add-DistributionGroupMember -Identity DG01 -Member $Member }
Дополнительные сведения о новых возможностях модуля EXO V3 см. в разделе «Заметки о выпуске » далее в этой статье.
Сообщение об ошибках и проблемах в предварительных версиях модуля PowerShell в Exchange Online
Совет
Для версий модуля общей доступности не используйте следующий адрес электронной почты, чтобы сообщать о проблемах. Сообщения об общедоступных версиях модуля остаются без ответа. Вместо этого создайте запрос в службу поддержки.
Используйте его exocmdletpreview[at]service[dot]microsoft[dot]comтолько для предварительных версий модуля, чтобы сообщать о любых проблемах, которые могут возникнуть. Не забудьте вложить файлы журнала в сообщение электронной почты. Чтобы создать файлы журнала, замените <Path> папкой вывода, а затем выполните следующую команду:
Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path> -LogLevel All
Командлеты в модуле PowerShell Exchange Online
Модуль EXO содержит девять эксклюзивных командлетов Get-EXO*, оптимизированных для скорости в сценариях массового извлечения данных (тысячи и тысячи объектов) в Exchange Online PowerShell. Улучшенные командлеты в модуле перечислены в следующей таблице.
Совет
Если вы открываете несколько подключений к Exchange Online PowerShell в одном окне, командлеты Get-EXO* всегда связываются с последним (последним) подключением Exchange Online PowerShell. Выполните следующую команду, чтобы найти сеанс REST API, в котором выполняются командлеты Get-EXO* : Get-ConnectionInformation | Where-Object {$_.ConnectionUsedForInbuiltCmdlets -eq $true}.
Командлеты, связанные с подключением в модуле, перечислены в следующей таблице:
| Командлет модуля EXO | Соответствующий старый командлет | Comments |
|---|---|---|
| Connect-ExchangeOnline |
Connect-EXOPSession в V1 модуля или New-PSSession |
|
| Connect-IPPSSession | Connect-IPPSSession в V1 модуля | |
| Disconnect-ExchangeOnline | Remove-PSSession | |
| Get-ConnectionInformation | Get-PSSession | Доступно в версии 3.0.0 или более поздней. |
Совет
Частое использование командлетов Connect-ExchangeOnline и Disconnect-ExchangeOnline в одном сеансе PowerShell или сценарии может привести к утечке памяти. Лучший способ избежать этой проблемы — использовать параметр CommandName в командлете Connect-ExchangeOnline, чтобы ограничить командлеты, применяемые в сеансе.
Различные командлеты функций Exchange Online, которые есть в модуле, перечислены в следующей таблице:
| Командлет | Comments |
|---|---|
| Get-DefaultTenantBriefingConfig | Доступно в версии 3.2.0 или более поздней. |
| Set-DefaultTenantBriefingConfig | Доступно в версии 3.2.0 или более поздней. |
| Get-DefaultTenantMyAnalyticsFeatureConfig | Доступно в версии 3.2.0 или более поздней. |
| Set-DefaultTenantMyAnalyticsFeatureConfig | Доступно в версии 3.2.0 или более поздней. |
| Get-MyAnalyticsFeatureConfig | Этот командлет доступен в версии 2.0.4 и последующих версиях. |
| Set-MyAnalyticsFeatureConfig | Этот командлет доступен в версии 2.0.4 и последующих версиях. |
| Get-UserBriefingConfig | Заменен командлетом Get-MyAnalyticsFeatureConfig. |
| Set-UserBriefingConfig | Заменен командлетом Set-MyAnalyticsFeatureConfig. |
| Get-VivaInsightsSettings | Доступно в версии 2.0.5 и более поздних версиях. |
| Set-VivaInsightsSettings | Доступно в версии 2.0.5 и более поздних версиях. |
| Get-VivaModuleFeature | Доступно в версии 3.2.0 или более поздней. |
| Get-VivaModuleFeatureEnablement | Доступно в версии 3.2.0 или более поздней. |
| Add-VivaModuleFeaturePolicy | Доступно в версии 3.2.0 или более поздней. |
| Get-VivaModuleFeaturePolicy | Доступно в версии 3.2.0 или более поздней. |
| Remove-VivaModuleFeaturePolicy | Доступно в версии 3.2.0 или более поздней. |
| Update-VivaModuleFeaturePolicy | Доступно в версии 3.2.0 или более поздней. |
| Add-VivaOrgInsightsDelegatedRole | Доступно в версии 3.7.0-Preview1 или более поздней. |
| Get-VivaOrgInsightsDelegatedRole | Доступно в версии 3.7.0-Preview1 или более поздней. |
| Remove-VivaOrgInsightsDelegatedRole | Доступно в версии 3.7.0-Preview1 или более поздней. |
| Add-WorkforceInsightsDelegationAccess | Доступно в версии 3.9.2-Preview1 или более поздней. |
| Get-WorkforceInsightsDelegationAccess | Доступно в версии 3.9.2-Preview1 или более поздней. |
| Remove-WorkforceInsightsDelegationAccess | Доступно в версии 3.9.2-Preview1 или более поздней. |
Поддерживаемые операционные системы для модуля PowerShell Exchange Online
Модуль официально поддерживается в PowerShell 7 в Windows, Linux и Apple macOS:
- Для модулей версии 3.10.0 (июнь 2026 г.) или более поздней версии требуется PowerShell 7.6.0 (март 2026 г.) или более поздней версии из-за зависимостей сборки .NET 10.0.
- Для версий модуля 3.5.0 (май 2024 г.) — 3.9.2 (январь 2026 г.) требуется PowerShell 7.4.0 (ноябрь 2023 г.) или более поздней версии из-за зависимостей сборки .NET 8.0. В более ранних версиях PowerShell 7 могут возникать проблемы совместимости (PowerShell 7.3.6 более совместима с модулем, чем 7.3.7).
- Для версий модуля от 3.0.0 (сентябрь 2022 г.) до 3.4.0 (октябрь 2023 г.) требуется PowerShell 7.2.0 (ноябрь 2021 г.) или более поздней версии из-за зависимостей сборки .NET 6.0 в командлетах и соединениях REST API.
- Поддержка модуля в PowerShell 7 началась с версии 2.0.4 (февраль 2021 г.) в PowerShell 7.0.3 (июль 2020 г.).
Дополнительные сведения о PowerShell 7 см. в статье Что такое PowerShell?.
Совет
Все версии модуля поддерживаются и совместимы в Windows PowerShell 5.1.
Как было сказано ранее, в Exchange Online PowerShell и Security & Compliance PowerShell поддерживаются только подключения REST API:
- Версия 2.0.4 модуля (февраль 2021 г.) поддерживает REST API только для девяти эксклюзивных командлетов Get-EXO*.
- Версия 2.0.5 модуля (май 2021 г.) частично поддерживает командлеты REST API только в Exchange Online PowerShell.
- Версия 3.0.0 (сентябрь 2022 г.) или более поздняя полностью поддерживает командлеты REST API в Exchange Online PowerShell.
- Версия 3.2.0 (июнь 2023 г.) или более поздняя полностью поддерживает командлеты REST API в Security & Compliance PowerShell.
Поддержка модуля в macOS
Примечание.
В настоящее время Connect-IPPSSession и, следовательно, Security & Compliance PowerShell недоступны в PowerShell 7 на клиентах macOS.
Инструкции по установке PowerShell 7 в macOS см. в статье Установка PowerShell в macOS. После установки PowerShell 7 вы можете выполнить стандартные предварительные требования PowerShell, а также установить и обновить модуль PowerShell Exchange Online.
Модуль поддерживается в следующих версиях macOS:
macOS 14 Sonoma или более поздняя версия
| Версия модуля | Версия PowerShell |
|---|---|
| 3.10.0 или более поздней версии | 7.6.0 или более поздней версии |
| 3.5.0–3.9.2 | 7.4.0 или более поздней версии |
7.4.0 (.NET 8.0) — это самая ранняя поддерживаемая версия PowerShell 7 в macOS 14 Sonoma или более поздней версии.
macOS 13 Ventura
| Версия модуля | Версия PowerShell |
|---|---|
| 3.5.0–3.9.2 | 7.4.0–7.5.x |
| 3.0.0–3.4.0 | 7.2.0–7.3.7 |
Последняя поддерживаемая версия модуля — 3.9.2, потому что последняя поддерживаемая версия PowerShell 7 — 7.5.x (.NET 9.0).
macOS 12 Monterey и macOS 11 Big Sur
| Версия модуля | Версия PowerShell |
|---|---|
| 3.5.0–3.9.2 | 7.4.x |
| 3.0.0–3.4.0 | 7.2.0–7.3.7 |
| 2.0.4 и 2.0.5 | 7.0.3–7.1.5 |
Последняя поддерживаемая версия модуля — 3.9.2, потому что последняя поддерживаемая версия PowerShell 7 — 7.4.x (.NET 8.0).
Версии модулей от 3.0.0 до 3.9.2 поддерживаются на всех процессорах.
Версии модулей 2.0.4 и 2.0.5 изначально работают на процессорах Intel. Для процессоров Apple M1 или Apple M2 требуется Apple Rosetta 2.
macOS 10.15 Catalina
| Версия модуля | Версия PowerShell |
|---|---|
| 3.0.0–3.4.0 | 7.2.0–7.2.22 |
| 2.0.4 и 2.0.5 | 7.0.3–7.1.5 |
Последняя поддерживаемая версия модуля — 3.4.0, потому что последняя поддерживаемая версия PowerShell 7 — 7.2.22 (.NET 6.0).
macOS 10.14 Mojave
| Версия модуля | Версия PowerShell |
|---|---|
| 2.0.4 и 2.0.5 | 7.0.3–7.1.5 |
Последняя поддерживаемая версия модуля — 2.0.5, потому что последняя поддерживаемая версия PowerShell 7 — 7.1.5 (.NET 5.0).
Примечание.
Вы можете подключиться к Exchange Online PowerShell. Поддерживаются девять эксклюзивных командлетов Get-EXO* в модуле, но не все командлеты PowerShell для Exchange Online поддерживаются (не все командлеты поддерживают REST API в этой версии модуля).
Поддержка модуля в Linux
Примечание.
В настоящее время Connect-IPPSSession и, следовательно, Security & Compliance PowerShell недоступны в PowerShell 7 на Linux клиентах.
Если вы подключаетесь к Exchange Online PowerShell на базе Linux из сети за прокси-сервером, необходимо использовать модуль версии 3.0.0 или более поздней.
Инструкции по установке PowerShell 7 в Linux см. в статье Установка PowerShell в Linux. После установки PowerShell 7 вы можете выполнить стандартные предварительные требования PowerShell, а также установить и обновить модуль PowerShell Exchange Online.
Модуль официально поддерживается в следующих дистрибутивах Linux:
Ubuntu 24.04 LTS
| Версия модуля | Версия PowerShell |
|---|---|
| 3.10.0 или более поздней версии | 7.6.0 или более поздней версии |
| 3.5.0–3.9.2 | 7.4.0 или более поздней версии |
| 3.0.0–3.4.0 | 7.2.0–7.3.7 |
7.2.0 (.NET 6.0) — это самая ранняя поддерживаемая версия PowerShell 7 в Ubuntu 24.04 LTS.
Ubuntu 22.04 LTS
| Версия модуля | Версия PowerShell |
|---|---|
| 3.10.0 или более поздней версии | 7.6.0 или более поздней версии |
| 3.5.0–3.9.2 | 7.4.0 или более поздней версии |
| 3.0.0–3.4.0 | 7.2.0–7.3.7 |
7.2.0 (.NET 6.0) — это самая ранняя поддерживаемая версия PowerShell 7 в Ubuntu 22.04 LTS.
Ubuntu 20.04 LTS
| Версия модуля | Версия PowerShell |
|---|---|
| 3.5.0–3.9.2 | 7.4.x |
| 3.0.0–3.4.0 | 7.2.0–7.3.7 |
| 2.0.4 и 2.0.5 | 7.0.3–7.1.5 |
Последняя поддерживаемая версия модуля — 3.9.2, потому что последняя поддерживаемая версия PowerShell 7 — 7.4.x (.NET 8.0).
В версиях модуля 3.7.0–3.9.2 может произойти сбой с ошибками протокола SSL.
Ubuntu 18.04 LTS
| Версия модуля | Версия PowerShell |
|---|---|
| 3.5.0–3.9.2 | 7.4.x |
| 3.0.0–3.4.0 | 7.2.0–7.3.7 |
| 2.0.4 и 2.0.5 | 7.0.3–7.1.5 |
Последняя поддерживаемая версия модуля — 3.9.2, потому что последняя поддерживаемая версия PowerShell 7 — 7.4.x (.NET 8.0).
Модули версий с 3.7.0 по 3.9.2 могут иметь проблемы с надежностью в Ubuntu 18.04 LTS.
Поддержка модуля в Windows
Поддержка определенных версий модулей в Windows зависит от поддержки Windows PowerShell и платформы .NET Framework и/или .NET, как описано в следующих подразделах:
Windows 11
В Windows PowerShell 5.1 для модуля требуется платформа .NET Framework 4.7.2 (4.8.x входит в состав Windows 11, поэтому вам не нужно устанавливать платформу .NET Framework).
| Версия модуля | Версия PowerShell |
|---|---|
| Windows PowerShell 5.1 | |
| 2.0.5 или более поздней версии | 5.1 |
| PowerShell 7 | |
| 3.10.0 или более поздней версии | 7.6.0 или более поздней версии |
| 3.5.0–3.9.2 | 7.4.0 или более поздней версии |
| 3.0.0–3.4.0 | 7.2.0–7.3.7 |
7.2.0 (.NET 6.0) — это самая ранняя поддерживаемая версия PowerShell 7 в Windows 11.
Windows Server 2022 и Windows Server 2025
В Windows PowerShell 5.1 для модуля требуется платформа .NET Framework 4.7.2 (входит 4.8.x, поэтому вам не нужно устанавливать платформу .NET Framework).
| Версия модуля | Версия PowerShell |
|---|---|
| Windows PowerShell 5.1 | |
| 2.0.5 или более поздней версии | 5.1 |
| PowerShell 7 | |
| 3.10.0 или более поздней версии | 7.6.0 или более поздней версии |
| 3.5.0–3.9.2 | 7.4.0 или более поздней версии |
| 3.0.0–3.4.0 | 7.2.0–7.3.7 |
7.2.0 (.NET 6.0) является самой ранней поддерживаемой версией PowerShell 7 в Windows Server 2022 и Windows Server 2025.
Windows 10
В Windows PowerShell 5.1 для модуля требуется платформа .NET Framework 4.7.2. Обновление Windows 10 за апрель 2018 г. (версия 1803) или более позднее включает платформу .NET Framework 4.7.2, поэтому вам не нужно ее скачивать.
| Версия модуля | Версия PowerShell | Поддерживаемая версия Windows |
|---|---|---|
| Windows PowerShell 5.1 | ||
| 2.0.5 или более поздней версии | 5.1 | Юбилейное обновление (версия 1607; август 2016 г.) или более поздней версии |
| PowerShell 7 | ||
| 3.10.0 или более поздней версии | 7.6.0 или более поздней версии | Только выпуски Корпоративная/IoT LTSC (1607, 1809, 21H2) |
| 3.5.0–3.9.2 | 7.4.0 или более поздней версии | Только выпуски Корпоративная/IoT LTSC (1607, 1809, 21H2) |
| 3.0.0–3.4.0 | 7.2.0–7.3.7 | Обновление за октябрь 2018 г. (версия 1809) или более позднее |
| 2.0.4 и 2.0.5 | 7.0.3–7.1.5 | Юбилейное обновление (версия 1607; август 2016 г.) или более поздней версии |
В Windows 10 .NET 8.0 и .NET 10.0 (следовательно, PowerShell 7.4 или более поздней версии и версии модуля 3.5.0 или более поздней) поддерживаются только в выпусках Корпоративная и IoT LTSC, которые все еще поддерживаются (версии 1607, 1809 и 21H2).
Поддержка потребительских выпусков Windows 10 закончилась в октябре 2025 г. и они не поддерживают .NET 8.0 или .NET 10.0.
Windows Server 2016 и Windows Server 2019
В Windows PowerShell 5.1 для модуля требуется платформа .NET Framework 4.7.2 (входит в Windows Server 2019).
| Версия модуля | Версия PowerShell |
|---|---|
| Windows PowerShell 5.1 | |
| 2.0.5 или более поздней версии | 5.1 |
| PowerShell 7 | |
| 3.10.0 или более поздней версии | 7.6.0 или более поздней версии |
| 3.5.0–3.9.2 | 7.4.0 или более поздней версии |
| 3.0.0–3.4.0 | 7.2.0–7.3.7 |
| 2.0.4 и 2.0.5 | 7.0.3–7.1.5 |
Windows 8.1, Windows Server 2012 и Windows Server 2012 R2
В Windows PowerShell 5.1 для модуля требуется платформа .NET Framework 4.7.2.
| Версия модуля | Версия PowerShell |
|---|---|
| Windows PowerShell 5.1 | |
| 2.0.5 или более поздней версии | 5.1 |
| PowerShell 7 | |
| 3.0.0–3.4.0 | 7.2.х |
| 2.0.4 и 2.0.5 | 7.0.3–7.1.5 |
7.2.22 (.NET 6.0) является последней поддерживаемой версией PowerShell 7 в Windows 8.1, Windows Server 2012 и Windows Server 2012 R2.
Windows 7.1 SP1 и Windows Server 2008 R2 SP1
В Windows PowerShell 5.1 для модуля требуется платформа .NET Framework 4.7.1.
| Версия модуля | Версия PowerShell |
|---|---|
| Windows PowerShell 5.1 | |
| 2.0.3 | 5.1 |
Примечание.
Хотя вы можете установить эту версию модуля, вы не сможете подключиться к Exchange Online PowerShell или Security & Compliance PowerShell. В версии модуля 2.0.3 отсутствует поддержка подключений REST API.
Необходимые условия для модуля PowerShell Exchange Online
Установка политики выполнения PowerShell в RemoteSigned
Совет
Параметры в этом разделе применяются ко всем версиям PowerShell во всех операционных системах.
Чтобы запускать сценарии, необходимо настроить PowerShell. По умолчанию это приложение не настроено. При попытке подключения появляется следующее сообщение об ошибке:
Файлы невозможно загрузить, поскольку выполнение сценариев в этой системе отключено. Предоставьте действительный сертификат для подписи файлов.
Чтобы требовать подписи доверенного издателя для всех скриптов PowerShell, скачанных из Интернета, выполните следующую команду в сеансе PowerShell с повышенными правами (окно PowerShell, которое вы открываете, выбрав "Запуск от имени администратора"):
Set-ExecutionPolicy RemoteSigned
Дополнительные сведения о политиках выполнения см. в статье Сведения о политиках выполнения.
Обычная проверка подлинности в WinRM
С октября 2023 г. подключения REST API заменили подключения базовой проверки подлинности (удаленная версия PowerShell) в Exchange Online PowerShell и Security & Compliance. Подключения REST API не требуют базовой проверки подлинности в WinRM.
Версия 3.2.0 (июнь 2023 г.) и более поздние версии модуля полностью поддерживают командлеты REST API в Exchange Online PowerShell и Security & Compliance.
PowerShellGet требуется в Windows
Для подключений REST API в Windows требуется модуль PowerShellGet. В зависимости для модуля PowerShellGet требуется модуль PackageManagement. Эти модули больше подходят для PowerShell 5.1, чем для PowerShell 7, но все версии PowerShell выигрывают от установки последних версий модулей. Инструкции по установке и обновлению см. в статье "Установка PowerShellGet в Windows".
Совет
Предварительные версии модулей PackageManagement или PowerShellGet могут вызывать проблемы с подключением. Если у вас возникли проблемы с подключением, убедитесь, что у вас не установлены предварительные версии модулей, выполнив следующую команду: Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions.
Если при попытке подключения не установлена надстройка PowerShellGet, появляется следующая ошибка:
Не удается найти командлет Update-Manifest
Установка и обновление модуля PowerShell Exchange Online
Модуль доступен в коллекции PowerShell по адресу https://www.powershellgallery.com/packages/ExchangeOnlineManagement/.
Используйте командлет Install-Module для первоначальной установки модуля и командлет Update-Module для обновления существующей установки из коллекции PowerShell. Оба командлета используют одинаковые параметры, поэтому при установке и обновлении применяется один и тот же синтаксис.
Чтобы узнать, установлен ли модуль и как он был установлен, выполните Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocationследующую команду:
- Если модуль установлен в
%ProgramFiles%\WindowsPowerShell\Modules\, он устанавливается для всех пользователей. - Если модуль установлен в папке "Документы", он устанавливается только для текущей учетной записи пользователя.
Перед первой установкой модуля установите или обновите модуль PowerShellGet, как описано в разделе "Установка PowerShellGet", а затем закройте и снова откройте окно PowerShell.
Чтобы установить или обновить модуль, используйте следующий синтаксис:
<Install-Module | Update-Module> -Name ExchangeOnlineManagement [-Scope CurrentUser] [-RequiredVersion <Version>] [-AllowPrerelease]
Как правило, вам нужна последняя общедоступная версия модуля, но вы также можете установить или обновить его до предварительной версии.
Требования к сеансу PowerShell для установки или обновления модуля:
- Для всех пользователей: выполните команду в сеансе PowerShell с повышенными привилегиями.
- Для текущего пользователя: сеанс PowerShell с повышенными правами не требуется.
При обновлении модуля используйте ту же область, которая использовалась для его первоначальной установки.
Параметр RequiredVersion указывает версию модуля для установки или обновления. Этот параметр можно использовать с переключателем AllowPrerelease или без него.
Переключатель AllowPrerelease устанавливает или обновляет предварительную версию модуля. Чтобы указать версию Preview, также используйте параметр RequiredVersion .
Чтобы просмотреть все доступные версии модуля, включая Preview, запустите
Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease. Чтобы видеть только общедоступные версии, опустите переключатель AllowPrerelease .
В этом примере устанавливается последняя общедоступная версия модуля для всех пользователей.
Install-Module -Name ExchangeOnlineManagement
В этом примере модуль обновляется до последней общедоступной версии для текущей учетной записи пользователя.
Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
В этом примере устанавливается последняя доступная предварительная версия модуля для всех пользователей.
Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
Подробные сведения о синтаксисе и параметрах см. в следующих статьях:
Удаление модуля PowerShell Exchange Online
Чтобы удалить модуль, выполните следующую команду. Если вы изначально установили модуль для всех пользователей, выполните команду в сеансе PowerShell с повышенными привилегиями.
Uninstall-Module -Name ExchangeOnlineManagement
Чтобы проверить, как был установлен модуль (все пользователи или учетная запись текущего пользователя), используйте Get-InstalledModule команду в начале раздела "Установка и обновление модуля PowerShell для Exchange Online".
Дополнительные сведения о синтаксисе и параметрах см. в разделе Uninstall-Module.
Устранение неполадок при установке модуля PowerShell Exchange Online
В этом разделе описаны ошибки, которые могут возникнуть при установке модуля, и способы их устранения.
Вы получаете одну из следующих ошибок:
Указанный модуль "ExchangeOnlineManagement" с "версией>" PowerShellGetFormatVersion< не поддерживается текущей версией PowerShellGet. Получите последнюю версию модуля PowerShellGet, чтобы установить этот модуль, "ExchangeOnlineManagement".
ПРЕДУПРЕЖДЕНИЕ! Не удается скачать из URI 'https://go.microsoft.com/fwlink/?LinkID=627338& clcid=0x409' в ''.
ПРЕДУПРЕЖДЕНИЕ. Не удается скачать список доступных поставщиков. Проверьте подключение к Интернету.
Обновите установку модуля PowerShellGet до последней версии, как описано в разделе Установка PowerShellGet. Перед повторной попыткой обновления модуля ExchangeOnlineManagement обязательно закройте и снова откройте окно PowerShell.
Вы получаете следующую ошибку:
Для указанных критериев поиска и имени модуля ExchangeOnlineManagement совпадений не найдено. Чтобы увидеть все доступные репозитории зарегистрированных модулей, запустите
Get-PSRepository.Репозиторий по умолчанию для модулей PowerShell не настроен на PSGallery. Чтобы устранить эту ошибку, запустите следующую команду:
Register-PSRepository -DefaultВ Windows PowerShell 5.1 при попытке установить модуль возникают ошибки, так как коллекция PowerShell требует подключений TLS 1.2 или более поздней версии (PowerShell 7 уже использует TLS 1.2 или более поздней версии). Эта проблема обычно затрагивает только старые версии Windows, в которых платформа .NET Framework не использует TLS 1.2 по умолчанию. Дополнительные сведения и действия по устранению проблемы см. в разделе Поддержка TLS в коллекции PowerShell.
Свойства и наборы свойств в модуле PowerShell Exchange Online
Традиционные командлеты Exchange Online возвращают все возможные свойства объектов, в том числе множество пустых и неинтересных свойств. Такое поведение приводит к снижению производительности (увеличивается объем серверных вычислений и нагрузка на сеть). Полный набор свойств редко требуется (практически никогда) в выходных результатах командлета.
Командлеты Get-EXO* в модуле содержат категоризированные выходные свойства. Вместо того, чтобы присваивать всем свойствам одинаковую важность и возвращать их во всех сценариях, мы классифицировали определенные связанные свойства по множествам свойств. Эти наборы свойств представляют собой сегменты двух или более связанных свойств в командлете.
Самые крупные и наиболее часто используемые командлеты Get-EXO* используют наборы свойств:
В этих командлетах наборы свойств управляются следующими параметрами:
- PropertySets: этот параметр принимает одно или больше доступных имен наборов свойств с разделителями-запятыми. Доступные наборы свойств описаны в разделе "Наборы свойств в командлетах модуля PowerShell Exchange Online".
- Properties: этот параметр принимает одно или больше имен свойств с разделителями-запятыми.
Вы можете использовать параметры PropertySets и Properties вместе в одной команде.
Мы также включили минимальный набор свойств, который включает в себя минимальный набор обязательных свойств для выходных данных командлета (например, свойства идентификаторов). Свойства в минимальных наборах свойств также описаны в статье Наборы свойств в командлетах модуля PowerShell в Exchange Online.
- Если вы не используете параметры PropertySets или Properties, то автоматически получите свойства из набора Minimum.
- Если вы используете параметры PropertySets или Properties, вы получите указанные свойства и свойства из набора Minimum.
В любом случае выходные данные командлета содержат гораздо меньше свойств, а результаты возвращаются гораздо быстрее.
Например, после подключения к Exchange Online PowerShell следующий пример возвращает только свойства свойства свойства Minimum, заданного для первых 10 почтовых ящиков.
Get-EXOMailbox -ResultSize 10
В противоположность этому, результаты той же команды Get-Mailbox вернут не менее 230 свойств для каждого из первых 10 почтовых ящиков.
Примечание.
Хотя параметр PropertySets принимает значение All, настоятельно рекомендуем не использовать это значение для получения всех свойств, так как замедлится работа команды и снизится надежность. Всегда используйте параметры PropertySets и Properties для получения минимального количества свойств, необходимых для вашего сценария.
Дополнительные сведения о фильтрации в модуле см. в статье Фильтры в модуле PowerShell Exchange Online.
Заметки о выпуске
Если не указано иное, текущая версия модуля PowerShell для Exchange Online содержит все возможности предыдущих выпусков.
Текущая версия
Версия 3.10.1
- Исправлены ошибки проверки подлинности на основе сертификатов (CBA) и другие незначительные проблемы с производительностью.
Предыдущие выпуски
Версия 3.10.0
- Начиная с этой версии модуля, минимальная требуемая версия PowerShell 7 — 7.6. Windows PowerShell 5.1 остается незатронутым.
- Исправлена проблема, из-за которой аутентификация на основе сертификатов (CBA) завершалась сбоем в Connect-IPPSSession при использовании переключателя EnableSearchOnlySession .
Версия 3.9.2
- Новые командлеты Add-WorkforceInsightsDelegationAccess, Get-WorkforceInsightsDelegationAccess и Remove-WorkforceInsightsDelegationAccess для делегирования Workforce Insights.
- Новый параметр EXOModuleBasePath в Connect-ExchangeOnline и Connect-IPPSSession для хранения временных файлов модуля EXO по пользовательскому пути.
- Исключен параметр UseRpsSession из Connect-ExchangeOnline и Connect-IPPSSession.
Версия 3.9.0
- Новый переключатель EnableSearchOnlySession на Connect-IPPSSession, позволяющий определенным командлетам обнаружения электронных данных и связанным командлетам подключаться к другим службам Microsoft 365.
Версия 3.8.0
Новый параметр AccessToken в Connect-IPPSSession.
Get-VivaModuleFeature теперь возвращает сведения о ParentFeature, ChildFeature и PolicyModes. Эти значения представляют родительские и дочерние функции приложения Viva, а также доступные режимы включения для будущих политик.
Новые параметры IsUserOptedInByDefault в командлетах Add-VivaModuleFeaturePolicy и Update-VivaModuleFeaturePolicy и соответствующее значение свойства во всех командлетах *-VivaModuleFeaturePolicy . Значение указывает, согласились ли пользователи на использование политики или нет, если пользователь не задал параметр.
Вы можете использовать этот параметр, чтобы оставить функцию включенной в организации, но при этом по умолчанию отказаться от затронутых пользователей, фактически мягко отключая эту функцию для этих пользователей.
Исключены командлет Get-VivaFeatureCategory, все параметры, связанные с категориями, и возвращаемые значения (CategoryId, IsCategoryEnabled).
Версия 3.7.2
- Ключ DisableWAM доступен в командлете Connect-ExchangeOnline для отключения диспетчера учетных веб-записей (WAM) при возникновении ошибок подключения, связанных с WAM.
Версия 3.7.1
- Добавлено новое свойство с именем
ExoExchangeSecurityDescriptorв выходные данные Get-EXOMailbox , аналогичное свойствуExchangeSecurityDescriptorв выходных данных Get-Mailbox. - Добавлены новые командлеты для поддержки функции делегирования Viva Org Insights:
- Add-VivaOrgInsightsDelegatedRole
- Get-VivaOrgInsightsDelegatedRole
- Remove-VivaOrgInsightsDelegatedRole
Версия 3.7.0
- Интегрированный диспетчер учетных веб-записей (WAM) в потоках проверки подлинности для повышения безопасности.
- Справка по командлетам PowerShell в Exchange Online больше не загружается по умолчанию. Используйте переключатель LoadCmdletHelp в команде Connect-ExchangeOnline, чтобы справка по командлетам PowerShell для Exchange Online была доступна командлету Get-Help.
- Исправлены проблемы подключения с проверкой подлинности только приложений в Security & Compliance PowerShell.
Версия 3.6.0
- Get-VivaModuleFeature теперь возвращает сведения о типах удостоверений, для которых функция поддерживает создание политик (например, пользователи, группы или вся организация).
- Командлеты для управления доступом функций Viva теперь обрабатывают проблемы с утверждениями непрерывной оценки доступа (CAE).
- Добавлено исправление проблемы совместимости с модулем Microsoft.Graph.
Версия 3.5.1
- Исправлены ошибки в Get-EXOMailboxPermission и Get-EXOMailbox.
- Модуль обновлен для работы в .NET 8, заменив предыдущую версию на базе .NET 6.
- Улучшения в Add-VivaModuleFeaturePolicy.
Версия 3.5.0
- Новый командлет Get-VivaFeatureCategory .
- Добавлена поддержка операций политики на уровне категории в Viva Feature Access Management (VFAM).
- Новое свойство IsFeatureEnabledByDefault в выходных данных Get-VivaModuleFeaturePolicy. Значение этого свойства показывает состояние включения по умолчанию для пользователей, если организация или политики пользователей или групп не созданы.
Версия 3.4.0
- Исправлены ошибки в Connect-ExchangeOnline, Get-EXORecipientPermission и Get-EXOMailboxFolderPermission.
- Параметр SigningCertificate в Connect-ExchangeOnline теперь поддерживает режим ограниченного языка (CLM).
Версия 3.3.0
- Параметр SkipLoadingCmdletHelp в Connect-ExchangeOnline для поддержки пропуска загрузки файлов справки командлета.
- Глобальная переменная
EXO_LastExecutionStatusдоступна для проверки состояния последнего запущенного командлета. - Исправлены ошибки в Connect-ExchangeOnline и Connect-IPPSSession.
- Параметр IsUserControlEnabled в Add-VivaModuleFeaturePolicy и Update-VivaModuleFeaturePolicy для поддержки включения пользовательских элементов управления политикой для функций, подключенных к управлению доступом к функциям Viva.
Версия 3.2.0
- Новые командлеты:
- Get-DefaultTenantBriefingConfig и Set-DefaultTenantBriefingConfig.
- Get-DefaultTenantMyAnalyticsFeatureConfig и Set-DefaultTenantMyAnalyticsFeatureConfig.
- Get-VivaModuleFeature, Get-VivaModuleFeatureEnablement, Add-VivaModuleFeaturePolicy, Get-VivaModuleFeaturePolicy, Remove-VivaModuleFeaturePolicy и Update-VivaModuleFeaturePolicy.
- Поддержка подключения REST API для обеспечения безопасности & соответствия требованиям PowerShell.
-
Параметр ConnectionId в Get-ConnectionInformation и Disconnect-ExchangeOnline:
- Получение сведений о подключении к конкретным подключениям REST API.
- Выборочное отключение для подключений REST API.
- Параметр SigningCertificate в Connect-ExchangeOnline позволяет подписать файлы формата (*. format.ps1xml) или файлы модуля сценариев (.psm1) во временном модуле, который Connect-ExchangeOnline создает с сертификатом клиента для использования во всех политиках выполнения PowerShell.
- Исправлены ошибки в Connect-ExchangeOnline.
Версия 3.1.0
- Параметр AccessToken доступен в Connect-ExchangeOnline.
- Исправлены ошибки в Connect-ExchangeOnline и Get-ConnectionInformation.
- Исправлена ошибка в Connect-IPPSSession для подключения к Windows PowerShell для обеспечения безопасности & соответствия требованиям с помощью CertificateThumbprint.
Версия 3.0.0 (предварительные версии, известные как v2.0.6-PreviewX)
- Функции, уже описанные в разделе подключений REST API в разделе модуля EXO V3 :
- Проверка подлинности на основе сертификатов для обеспечения безопасности & соответствия требованиям PowerShell (версия 2.0.6-Preview5 или более поздняя).
- Командлет Get-ConnectionInformation для подключений на основе REST (версия 2.0.6-Preview7 или более поздняя).
- Переключатель SkipLoadingFormatData в командлете Connect-ExchangeOnline для подключений на основе REST (версия 2.0.6-Preview8 или более поздняя).
- Параметр DelegatedOrganization работает в командлете Connect-IPPSSession , если в команде также используется параметр AzureADAuthorizationEndpointUri .
- Некоторые командлеты, запрашивающие подтверждение в определенных сценариях, больше не делают этого. По умолчанию командлет выполняется до завершения.
- Формат ошибки, возвращаемой в результате сбоя выполнения командлета, немного изменен. Исключение теперь содержит больше данных (например, тип исключения), и
FullyQualifiedErrorIdне содержитFailureCategoryФормат ошибки может быть изменен в дальнейшем.
Версия 2.0.5
Новые командлеты Get-OwnerlessGroupPolicy и Set-OwnerlessGroupPolicy для управления бесхозными Группы Microsoft 365.
Примечание.
Хотя командлеты доступны в модуле, функция доступна только участникам закрытой предварительной оценки.
Новые командлеты Get-VivaInsightsSettings и Set-VivaInsightsSettings для управления доступом пользователей к функциям Headspace в Viva Insights.
Версия 2.0.4
PowerShell 7 официально поддерживается в Windows, Linux и Apple macOS, как описано в разделе "Необходимые условия для модуля PowerShell для Exchange Online" в этой статье.
Модуль в PowerShell 7 поддерживает единый вход в браузере (SSO) и другие методы входа. Дополнительные сведения см. в статье PowerShell 7 исключающие методы подключения.
Командлеты Get-UserAnalyticsConfig и Set-UserAnalyticsConfig были заменены командлетами Get-MyAnalyticsConfig и Set-MyAnalyticsConfig . Вы также можете настроить доступ на уровне функций. Дополнительные сведения см. в статье Настройка MyAnalytics.
Применение политик и мер безопасности в режиме реального времени при любой проверке подлинности пользователя. В модуле включена непрерывная оценка доступа (CAE). Дополнительные сведения см. в статье "На пути к политикам и обеспечению безопасности в режиме реального времени".
Свойства LastUserActionTime и LastInteractionTime теперь доступны в выходных данных командлета Get-EXOMailboxStatistics.
В интерактивном процессе входа теперь используется более безопасный метод получения маркеров доступа с использованием безопасных URL-адресов ответа.
Версия 2.0.3
- Общедоступная проверка подлинности на основе сертификатов (CBA), позволяющая использовать современную проверку подлинности в сценариях автоматической работы или в сценариях фоновой автоматизации. Ниже указаны доступные расположения хранилищ сертификатов.
- Удаленный в параметре Azure Key Value (Certificate). Этот параметр повышает уровень безопасности за счет получения сертификата только в среде выполнения.
- Локальный в хранилище сертификатов CurrentUser или LocalMachine (параметр CertificateThumbprint).
- Локальный в экспортированном файле сертификата (параметры CertificateFilePath и CertificatePassword). Дополнительные сведения см. в описаниях параметров в статьях Connect-ExchangeOnline и "Проверка подлинности только в приложении" для автоматических сценариев в модуле PowerShell Exchange Online.
- Одновременное подключение к Exchange Online PowerShell и PowerShell безопасности и соответствия требованиям в одном окне PowerShell.
- Новый параметр CommandName позволяет указать и ограничить командлеты Exchange Online PowerShell, импортированные во время сеанса. Этот параметр уменьшает объем памяти, занимаемый приложениями PowerShell с высокой нагрузкой.
- Get-EXOMailboxFolderPermission теперь поддерживает ExternalDirectoryObjectID в параметреIdentity.
- Оптимизированная задержка первого вызова командлета V2. Результаты лабораторных исследований показывают, что задержка первого звонка уменьшилась с 8 секунд примерно до 1 секунды. Фактические результаты зависят от размера результата командлета и среды организации.
Версия 1.0.1
- Общедоступная версия модуля EXO V2. Она стабильна и готова к использованию в производственных средах.
- Командлет Get-ExoMobileDeviceStatistics теперь поддерживает параметр Identity.
- Повышена надежность автоматического повторного подключения сеансов в определенных сценариях, когда сценарий выполнялся в течение ~50 минут и выдавал ошибку "Командлет не найден" из-за ошибки в логике автоматического повторного подключения.
- Устранены проблемы с типом данных двух широко используемых атрибутов "User" и "MailboxFolderUser" для легкого переноса сценариев.
- Улучшена поддержка фильтров, так как теперь поддерживаются еще четыре оператора: EndsWith, Contains, Not и NotLike. Проверьте фильтры в модуле PowerShell Exchange Online на наличие атрибутов, не поддерживаемых в фильтрах.
Версия 0.4578.0
- Добавлена поддержка настройки писем со сводкой дел для организации на уровне пользователя с применением командлетов Set-UserBriefingConfig и Get-UserBriefingConfig.
- Поддержка очистки сеанса с помощью командлета Disconnect-ExchangeOnline. Этот командлет является эквивалентом
Get-PSSession | Remove-PSSessionV2. Кроме очистки объекта сеанса и локальных файлов, это также приводит к удалению маркера доступа из кэша, который используется для проверки подлинности в командлетах V2. - Теперь можно использовать
FolderIdкак параметр удостоверения в Get-EXOMailboxFolderPermission. Чтобы получить значениеFolderId, используйте Get-MailboxFolder. Например:Get-MailboxFolderPermission -Identity <UPN>:<Folder-Path>Get-MailboxFolderPermission -Identity <UPN>:\<Folder-Id> - Повышена надежность Get-EXOMailboxStatistics , так как устранены некоторые ошибки маршрутизации запросов, которые приводили к сбоям.
- Оптимизировано использование памяти для новых сеансов, созданных за счет повторного использования существующих модулей, вместо создания нового сеанса при каждом импорте сеанса.
Версия 0.4368.1
- Добавлена поддержка командлетов PowerShell безопасности и соответствия требованиям с использованием командлета Connect-IPPSSession.
- Скрыть баннер с объявлением можно с помощью переключателя ShowBanner (
-ShowBanner:$false). - Остановите выполнение командлета на исключениях клиента.
- Remote PowerShell содержал различные сложные типы данных, которые намеренно не поддерживались в командлетах EXO для повышения производительности. Устранены различия в типах несложных данных между удаленными командлетами PowerShell и командлетами V2, чтобы упростить перенос сценариев управления.
Версия 0.3582.0
- Поддержка префикса во время создания сеанса:
- Одновременно можно создать только один сеанс с префиксами командлетов.
- Командлеты EXO V2 не имеют префикса, так как у них уже есть префикс EXO, поэтому не используйте
EXOих в качестве префикса.
- Используйте командлеты EXO V2, даже если на клиентском компьютере отключена обычная проверка подлинности WinRM. Для удаленных подключений PowerShell требуется базовая проверка подлинности WinRM, а удаленные командлеты PowerShell недоступны, если в WinRM отключена базовая проверка подлинности.
- Параметр идентификаторов для командлетов V2 теперь поддерживает имя и псевдоним. Использование псевдонима или имени снижает производительность командлетов V2, поэтому не рекомендуется их использовать.
- Устранена проблема, из-за которой тип данных атрибутов, возвращаемых командлетом V2, отличался от тех, что возвращались командлетами PowerShell. У нас осталось еще мало атрибутов с различными типами данных, и мы планируем обработать их в ближайшие месяцы.
- Исправлена ошибка: проблема повторного подключения частых сеансов, если Connect-ExchangeOnline была вызвана с учетными данными или UserPrincipalName
Версия 0.3555.1
- Исправлена ошибка, из-за которой переданные командлеты не работали из-за проблемы с проверкой подлинности:
не удается вызвать конвейер, так как пространство выполнения не находится в состоянии "Открыто". Текущее состояние пространства выполнения — "закрыто".
Версия 0.3527.4
- Обновлено содержимое Get-Help.
- Исправлена проблема в Get-Help, из-за которой параметр Online перенаправлял на несуществующую страницу с кодом ошибки 400.
Версия 0.3527.3
- Добавлена поддержка управления Exchange для другой организации с помощью потока делегирования.
- Работает в тандеме с другими модулями PowerShell в одном окне PowerShell.
- Добавлена поддержка позиционных параметров.
- Поле "Дата и время" теперь поддерживает языковой стандарт клиента.
- Устранена ошибка, из-за которой параметр PSCredential становился пустым при передаче во время Connect-ExchangeOnline.
- Устранена ошибка в модуле клиента, которая возникала, когда фильтр содержал $null.
- Теперь у сеансов, созданных внутри в модуле EXO V2, есть имена (формат имен: ExchangeOnlineInternalSession_%SomeNumber%).
- Исправление ошибки: удаленные командлеты PowerShell периодически завершаются сбоем из-за разницы во времени, разницы между сроком действия токена и переходом сеанса в простое
- Значительное обновление безопасности.
- Исправления ошибок и улучшения.