Сведения о Exchange Online PowerShell

Модуль Exchange Online PowerShell использует современную проверку подлинности и работает с многофакторной проверкой подлинности (MFA) для подключения ко всем средам PowerShell, связанным с Exchange, в Microsoft 365: Exchange Online PowerShell, PowerShell для обеспечения безопасности & и автономной Exchange Online Protection (EOP) PowerShell.

Примечание

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

Инструкции по подключению с помощью модуля см. в следующих статьях:

В оставшейся части этой статьи описано, как работает модуль, как установить и обслуживать модуль, а также оптимизированные командлеты Exchange Online, доступные в модуле.

Обновления версии 3.0.0 (модуль EXO V3)

Версии 3.0.0 — это общедоступная версия модуля 2.0.6-PreviewX, которая теперь называется модулем EXO V3. Эта версия улучшает исторические возможности модуля EXO V2 (версии 2.0.5 и более ранних), используя следующие возможности:

  • Проверка подлинности на основе сертификатов (также известная как проверка подлинности CBA или только для приложений) доступна для powerShell & безопасности.

  • Командлеты, поддерживаемые REST API, доступны в Exchange Online PowerShell. Командлеты REST API имеют следующие преимущества по сравнению со своими историческими аналогами:

    • Более безопасно: командлеты REST API имеют встроенную поддержку современной проверки подлинности и не используют удаленный сеанс PowerShell, поэтому PowerShell на клиентском компьютере не требуется обычная проверка подлинности в WinRM для Exchange Online PowerShell.
    • Надежнее: командлеты REST API обрабатывают временные сбои с помощью встроенных повторных попыток, поэтому сбои или задержки минимизются. Например:
      • Сбои из-за сетевых задержек.
      • Задержки из-за больших запросов, которые занимает много времени.
    • Повышенная производительность: подключение позволяет избежать настройки пространства выполнения PowerShell в Exchange Online PowerShell.

    Преимущества командлетов REST API в Exchange Online PowerShell описаны в следующей таблице:

      Удаленные командлеты PowerShell Командлеты Get-EXO* Командлеты REST API
    Безопасность Наименее безопасный Высокая безопасность Высокая безопасность
    Производительность Низкая производительность Высокая производительность Средняя производительность
    Надежность Наименее надежный Высоконадежные Высоконадежные
    Функция Все доступные параметры и свойства выходных данных Доступные ограниченные параметры и свойства выходных данных Все доступные параметры и свойства выходных данных

    Примечание

    В настоящее время rest API не поддерживает командлеты в командлетах PowerShell & security & соответствия требованиям. Все командлеты в PowerShell & security по-прежнему используют удаленный сеанс PowerShell, поэтому PowerShell на клиентском компьютере требует обычной проверки подлинности в WinRM для успешного использования командлета Connect-IPPSSession.

    • Командлеты REST API в Exchange Online PowerShell имеют одинаковые имена командлетов и работают так же, как их удаленные эквиваленты PowerShell, поэтому вам не нужно обновлять скрипты.

    • Практически все доступные удаленные командлеты PowerShell в Exchange Online сейчас поддерживаются REST API.

  • Параметр UseRPSSession в Connect-ExchangeOnline предоставляет доступ ко всем существующим удаленным командлетам PowerShell в Exchange Online PowerShell:

    • Для параметра UseRPSSession требуется обычная проверка подлинности в WinRM на клиентском компьютере.
    • Если вы не используете параметр UseRPSSession при подключении к Exchange Online PowerShell, можно использовать только командлеты REST API.
  • Несколько командлетов REST API в Exchange Online PowerShell были обновлены с помощью экспериментального переключателя UseCustomRouting. Этот переключатель направляет команду прямо на нужный сервер почтовых ящиков. При этом может повышаться общая производительность.

    • При применении UseCustomRoutingSwitch можно использовать только следующие значения для идентификатора почтового ящика:

      • Имя участника-пользователя (UPN)
      • Адрес электронной почты
      • GUID почтового ящика
    • Переключатель UseCustomRouting доступен только для следующих командлетов REST API в Exchange Online PowerShell:

      • 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

      Используйте переключатель UseCustomRouting в рамках эксперимента и сообщайте о любых проблемах, которые у вас возникают.

  • Используйте командлет Get-ConnectionInformation для получения сведений о подключениях на основе REST к Exchange Online PowerShell. Этот командлет является обязательным, так как командлет Get-PSSession в Windows PowerShell не возвращает сведения для подключений на основе REST.

    Сценарии, в которых можно использовать Get-ConnectionInformation , описаны в следующей таблице:

    Сценарий Ожидаемые выходные данные
    Выполнение перед командой Connect-ExchangeOnline . Не возвращает никакого значения.
    Выполните команду Connect-ExchangeOnline , которая использует параметр UseRPSSession . Не возвращает ничего ( используйте Get-PSSession).
    Выполняется после команды Connect-ExchangeOnline на основе REST (без параметра UseRPSSession ). Возвращает один объект сведений о соединении.
    Выполняется после нескольких команд Connect-ExchangeOnline на основе REST. Возвращает коллекцию объектов сведений о соединении.
    Выполнение после нескольких команд Connect-ExchangeOnline с параметром UseRPSSession и без нее. Возвращает один объект сведений о соединении для каждого сеанса на основе REST.
  • Используйте параметр SkipLoadingFormatData в командлете Connect-ExchangeOnline в подключениях на основе REST (вы не используете параметр UseRPSSession ), чтобы избежать загрузки данных формата и ускорить выполнение команд Connect-ExchangeOnline .

Дополнительные сведения см. в разделе "Заметки о выпуске " далее в этой статье.

Сведения о переходе с более старой версии Exchange Online Удаленного модуля PowerShell (V1) на текущий выпуск см. в этой записи блога.

Сообщить об ошибках и проблемах для Exchange Online PowerShell

Примечание

Для общедоступных версий модуля откройте запрос в службу поддержки на наличие проблем, которые у вас возникают. Для предварительных версий модуля используйте адрес электронной почты, как описано в этом разделе. Вы также можете использовать адрес электронной почты для отзывов и предложений для общедоступной и предварительной версий модуля.

При отправке отчета о проблемах в exocmdletpreview[at]service[dot]microsoft[dot]com не забудьте включить файлы журналов в сообщение электронной почты. Чтобы создать файл журнала, замените <Path to store log file> в нужной выходной папке и выполните следующую команду:

Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path to store log file> -LogLevel All

Примечание

Частое использование командлетов Connect-ExchangeOnline и Disconnect-ExchangeOnline в одном сеансе Или сценарии PowerShell может привести к утечке памяти. Лучший способ избежать этой проблемы — использовать параметр CommandName в командлете Connect-ExchangeOnline, чтобы ограничить командлеты, применяемые в сеансе.

Командлеты в Exchange Online PowerShell

Все версии модуля содержат девять монопольных командлетов Get-EXO* для Exchange Online PowerShell, оптимизированных для скорости в сценариях массового извлечения данных (тысячи и тысячи объектов). Старые связанные удаленные командлеты PowerShell по-прежнему доступны.

Улучшенные Exchange Online Командлеты PowerShell, доступные только в модуле, перечислены в следующей таблице:

Командлет модуля EXO Соответствующий старый командлет
Get-EXOMailbox Get-Mailbox
Get-EXORecipient Get-Recipient
Get-EXOCasMailbox Get-CASMailbox
Get-EXOMailboxPermission Get-MailboxPermission
Get-EXORecipientPermission Get-RecipientPermission
Get-EXOMailboxStatistics Get-MailboxStatistics
Get-EXOMailboxFolderStatistics Get-MailboxFolderStatistics
Get-EXOMailboxFolderPermission Get-MailboxFolderPermission
Get-EXOMobileDeviceStatistics Get-MobileDeviceStatistics

Командлеты, связанные с подключением, в модуле перечислены в следующей таблице:

Командлет модуля EXO Соответствующий старый командлет Comments
Connect-ExchangeOnline Connect-EXOPSSession
или
New-PSSession
Connect-IPPSSession Connect-IPPSSession
Disconnect-ExchangeOnline Remove-PSSession
Get-ConnectionInformation Get-PSSession Доступно в версии 2.0.6-Preview7 или более поздней.

В следующей таблице Exchange Online командлеты, которые находятся в модуле:

Командлет Примечания
Get-CustomNudge Доступно в версии 2.0.6-Preview5 и более поздних версиях
New-CustomNudge Доступно в версии 2.0.6-Preview5 и более поздних версиях
Remove-CustomNudge Доступно в версии 2.0.6-Preview5 и более поздних версиях
Set-CustomNudge Доступно в версии 2.0.6-Preview5 и более поздних версиях
Get-CustomNudgeAssignment Доступно в версии 2.0.6-Preview5 и более поздних версиях
New-CustomNudgeAssignment Доступно в версии 2.0.6-Preview5 и более поздних версиях
Remove-CustomNudgeAssignment Доступно в версии 2.0.6-Preview5 и более поздних версиях
Set-CustomNudgeAssignment Доступно в версии 2.0.6-Preview5 и более поздних версиях
Get-CustomNudgeSettings Доступно в версии 2.0.6-Preview5 и более поздних версиях
Set-CustomNudgeSettings Доступно в версии 2.0.6-Preview5 и более поздних версиях
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 и более поздних версиях.

Установка и обслуживание модуля Exchange Online PowerShell

Модуль можно скачать из коллекции PowerShell по адресу https://www.powershellgallery.com/packages/ExchangeOnlineManagement/.

Процедуры, описанные в этом разделе, описывают, как установить, обновить и удалить модуль.

Поддерживаемые операционные системы для Exchange Online PowerShell

Последние версии модуля официально поддерживаются в PowerShell 7 в Windows, Linux и Apple macOS.

В частности, версия 2.0.4 или более поздняя поддерживается в PowerShell 7.0.3 или более поздней версии.

Дополнительные сведения о PowerShell 7 см. в статье Объявление о PowerShell 7.0.

Apple macOS

Модуль поддерживается в следующих версиях macOS:

  • macOS 11 Big Sur и более поздние версии
  • macOS 10.15 Catalina
  • macOS 10.14 Mojave

Инструкции по установке PowerShell 7 в macOS см. в статье Установка PowerShell в macOS.

Примечание

Как описано в статье об установке, необходимо установить OpenSSL, что необходимо для WSMan.

После установки PowerShell 7 и OpenSSL выполните следующие действия.

  1. Запустите PowerShell в качестве суперпользователя: sudo pwsh

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

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    Если будет предложено, примите PSGallery в качестве источника командлетов.

Теперь можно выполнить обычные предварительные требования PowerShell и установить Exchange Online PowerShell.

Linux

Модуль официально поддерживается в следующих дистрибутивах Linux:

  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

Если у вас возникли проблемы с использованием модуля в других дистрибутивах Linux, ведите отчет о любых проблемах.

Инструкции по установке PowerShell 7 в Linux см. в статье Установка PowerShell в Linux.

После установки PowerShell 7 выполните следующие действия:

  1. Запустите PowerShell в качестве суперпользователя: sudo pwsh

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

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    Если будет предложено, примите PSGallery в качестве источника командлетов.

Теперь можно выполнить обычные предварительные требования PowerShell и установить Exchange Online PowerShell.

Примечание

При подключении Exchange Online PowerShell из сети, которая находится за прокси-сервером, модуль EXO V2 (версия 2.0.5 или более раннюю) не работает в Linux. Для подключения из сети, которая находится за прокси-сервером, необходимо использовать модуль EXO V3 (версии 3.0.0 или 2.0.6-PreviewX) в Linux.

Windows

Все версии модуля поддерживаются в Windows PowerShell 5.1.

Для PowerShell 7 в Windows требуется версия 2.0.4 или более поздняя.

Для подключения к версии 2.0.5 или более поздней требуется microsoft платформа .NET Framework 4.7.1 или более поздней версии. В противном случае вы получите сообщение об ошибке System.Runtime.InteropServices.OSPlatform . Это требование не должно быть проблемой в текущих версиях Windows. Дополнительные сведения о версиях Windows, поддерживающих версию платформа .NET Framework 4.7.1, см. в этой статье.

Windows PowerShell требования и поддержка модулей в более ранних версиях Windows описаны в следующем списке:

  • Windows 8.1 1

  • Windows Server 2012 или Windows Server 2012 R21

  • Windows 7 с пакетом обновления 1 (SP1) 2,3,4

  • Windows Server 2008 R2 с пакетом обновления 1 (SP1) 2,3,4

  • Для 1 PowerShell 7 в этой версии Windows требуется Windows 10 CRT.

  • 2 . Поддержка этой версии Windows завершена и теперь поддерживается только на виртуальных машинах Azure.

  • 3 Эта версия Windows поддерживает только версии 2.0.3 или более ранние версии модуля.

  • Для 4 Windows PowerShell 5.1 в этой версии Windows требуется платформа .NET Framework 4.5 или более поздней версии и Windows Management Framework 5.1. Дополнительные сведения см. в статье Windows Management Framework 5.1.

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

Примечание

Параметры, описанные в этом разделе, являются обязательными для всех версий PowerShell во всех операционных системах.

Задайте для политики выполнения PowerShell значение RemoteSigned

Чтобы запускать сценарии, необходимо настроить PowerShell. По умолчанию это приложение не настроено. При попытке подключения появится указанная ниже ошибка.

Файлы невозможно загрузить, поскольку выполнение сценариев в этой системе отключено. Предоставьте действительный сертификат для подписи файлов.

Чтобы требовать подпись надежного издателя для всех сценариев PowerShell, загружаемых из Интернета, выполните следующую команду в окне PowerShell с повышенными привилегиями (окно PowerShell, открываемое с помощью параметра Запуск от имени администратора).

Set-ExecutionPolicy RemoteSigned

Дополнительные сведения о политиках выполнения см. в статье Сведения о политиках выполнения.

Включение обычной проверки подлинности в WinRM

Примечание

Как описано ранее в этой статье, модуль EXO V3 не требует обычной проверки подлинности в WinRM для подключений на основе REST.

Для удаленных подключений PowerShell в WinRM необходимо разрешить обычную проверку подлинности. Мы не отправляем сочетание имени пользователя и пароля. Для отправки маркера OAuth сеанса требуется базовый заголовок проверки подлинности, так как реализация WinRM на стороне клиента не поддерживает OAuth.

Чтобы проверить, включена ли обычная проверка подлинности для WinRM, выполните в командной строке или в Windows PowerShell следующую команду.

Примечание

Для следующих команд требуется включить WinRM. Чтобы включить WinRM, выполните следующую команду: winrm quickconfig

winrm get winrm/config/client/auth

Если значение Basic = true не отображается, необходимо выполнить одну из следующих команд, чтобы включить обычную проверку подлинности для WinRM:

  • В командной строке:

    winrm set winrm/config/client/auth @{Basic="true"}
    
  • В Windows PowerShell:

    winrm set winrm/config/client/auth '@{Basic="true"}'
    
  • В Windows PowerShell для изменения реестра:

    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client' -Name 'AllowBasic' -Type DWord -Value '1'
    

Если обычная проверка подлинности для WinRM отключена, при попытке подключения возникнет одна из следующих ошибок.

Клиенту WinRM не удается обработать этот запрос. В настоящий момент в конфигурации клиента обычная проверка подлинности отключена. Измените конфигурацию клиента и повторите запрос.

Не удалось создать сеанс Powershell с помощью OAuth.

Совет

Возникли проблемы? Попросите помощи на форумах Exchange. Перейти на форумы можно по следующим ссылкам: Exchange Online или Exchange Online Protection.

Установка модуля Exchange Online PowerShell

Чтобы установить модуль в первый раз, выполните следующие действия:

  1. Установите или обновите модуль PowerShellGet, как описано в статье Установка PowerShellGet.

  2. Закройте и снова откройте окно Windows PowerShell.

  3. Теперь можно использовать командлет Install-Module для установки модуля из коллекция PowerShell. Как правило, требуется последняя общедоступная версия модуля, но вы также можете установить предварительную версию, если она доступна.

    • Чтобы установить последнюю общедоступную версию модуля, выполните одну из следующих команд.

      • В окне PowerShell с повышенными правами (все пользователи):

        Install-Module -Name ExchangeOnlineManagement
        
      • Только для учетной записи текущего пользователя:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • Чтобы просмотреть доступные предварительные версии модуля, выполните следующую команду:

      Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
      
    • Чтобы установить последнюю доступную предварительную версию модуля, выполните одну из следующих команд:

      • В окне PowerShell с повышенными правами (все пользователи):

        Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
        
      • Только для учетной записи текущего пользователя:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
        
    • Чтобы установить определенную предварительную версию модуля, <PreviewVersion> замените его необходимым значением и выполните одну из следующих команд:

      • В окне PowerShell с повышенными правами (все пользователи):

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
        
      • Только для учетной записи текущего пользователя:

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease -Scope CurrentUser
        

    После завершения введите Y, чтобы принять лицензионное соглашение.

Дополнительные сведения о синтаксисе и параметрах см. в разделе Install-Module.

Обновление модуля Exchange Online PowerShell

Если модуль уже установлен на компьютере, для обновления модуля можно использовать процедуры, описанные в этом разделе.

  1. Чтобы просмотреть версию модуля, который установлен и где он установлен, выполните следующую команду:

    Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
    

    Если модуль установлен в папке C:\Program Files\WindowsPowerShell\Modules, , он устанавливается для всех пользователей. Если модуль установлен в папке "Документы", он устанавливается только для текущей учетной записи пользователя.

  2. Командлет Update-Module можно использовать для обновления модуля из коллекция PowerShell. Как правило, требуется последняя общедоступная версия модуля, но вы также можете выполнить обновление до предварительной версии, если таковые имеются.

    • Чтобы выполнить обновление до последней общедоступной версии модуля, выполните одну из следующих команд в зависимости от того, как вы изначально установили модуль (все пользователи и только для текущей учетной записи пользователя):

      • В окне PowerShell с повышенными правами (все пользователи):

        Update-Module -Name ExchangeOnlineManagement
        
      • Только для учетной записи текущего пользователя:

        Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • Чтобы выполнить обновление до предварительной версии модуля, можно обновить до последней доступной предварительной версии или использовать параметр RequiredVersion для обновления до определенной предварительной версии.

      • Чтобы просмотреть доступные предварительные версии модуля, выполните следующую команду:

        Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
        
      • Чтобы обновить модуль до последней доступной предварительной версии, выполните одну из следующих команд:

        • В окне PowerShell с повышенными правами (все пользователи):

          Update-Module -Name ExchangeOnlineManagement -AllowPrerelease
          
        • Только для учетной записи текущего пользователя:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
          
      • Чтобы выполнить обновление до определенной предварительной версии модуля, <PreviewVersion> замените его необходимым значением и выполните одну из следующих команд:

        • В окне PowerShell с повышенными правами (все пользователи):

          Update-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
          
        • Только для учетной записи текущего пользователя:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -RequiredVersion <PreviewVersion> -AllowPrerelease
          

    После завершения введите Y, чтобы принять лицензионное соглашение.

  3. Чтобы убедиться в успешности обновления, выполните следующие команды для проверки версии установленного модуля:

    Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
    

Дополнительные сведения о синтаксисе и параметрах см. в разделе Update-Module.

Устранение неполадок при установке Exchange Online PowerShell

  • Вы получаете одну из следующих ошибок:

    Указанный модуль "ExchangeOnlineManagement" с PowerShellGetFormatVersion "<version>" не поддерживается текущей версией PowerShellGet. Получите последнюю версию модуля PowerShellGet, чтобы установить этот модуль, "ExchangeOnlineManagement".

    ПРЕДУПРЕЖДЕНИЕ. Не удается скачать из URI "https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409" в "".

    ПРЕДУПРЕЖДЕНИЕ. Не удается скачать список доступных поставщиков. Проверьте подключение к Интернету.

    Обновите установку модуля PowerShellGet до последней версии, как описано в разделе Установка PowerShellGet. Закройте и снова откройте окно PowerShell, прежде чем вновь обновлять модуль ExchangeOnlineManagement.

  • С апреля 2020 г. коллекция PowerShell поддерживает только подключения с использованием TLS 1.2 или более поздней версии. Дополнительные сведения см. в разделе Поддержка TLS в коллекции PowerShell.

    Чтобы проверить текущие параметры в Microsoft .NET Framework, выполните в Windows PowerShell следующую команду.

    [Net.ServicePointManager]::SecurityProtocol
    

    Как описано в статье о поддержке TLS в коллекции PowerShell, чтобы временно изменить протокол безопасности на TLS 1.2 для установки модулей PowerShellGet или ExchangeOnlineManagement, перед установкой модуля выполните в Windows PowerShell следующую команду.

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 
    

    Чтобы навсегда включить надежное шифрование в Microsoft .NET Framework версии 4.x или более поздней, выполните одну из следующих команд в зависимости от своей архитектуры Windows.

    • x64:

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      
    • x86

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      

    Дополнительные сведения см. в разделе SchUseStrongCrypto.

  • Вы получаете следующую ошибку:

    Для указанных критериев поиска и имени модуля ExchangeOnlineManagement совпадений не найдено. Чтобы увидеть все доступные репозитории зарегистрированных модулей, запустите Get-PSRepository.

    Репозиторий по умолчанию для модулей PowerShell не настроен на PSGallery. Чтобы устранить эту ошибку, запустите следующую команду:

    Register-PSRepository -Default
    

Удаление модуля Exchange Online PowerShell

Чтобы просмотреть версию модуля, который установлен и где он установлен, выполните следующую команду:

Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation

Если модуль установлен в папке C:\Program Files\WindowsPowerShell\Modules, , он был установлен для всех пользователей. Если модуль установлен в папке "Документы", он был установлен только для текущей учетной записи пользователя.

Чтобы удалить модуль, выполните одну из следующих команд в зависимости от того, как вы изначально установили модуль (все пользователи и только для текущей учетной записи пользователя):

  • В окне PowerShell с повышенными правами (все пользователи):

    Uninstall-Module -Name ExchangeOnlineManagement
    
  • Только для учетной записи текущего пользователя:

    Uninstall-Module -Name ExchangeOnlineManagement
    

Дополнительные сведения о синтаксисе и параметрах см. в разделе Uninstall-Module.

Свойства и наборы свойств в модуле Exchange Online PowerShell

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

Командлеты Get-EXO* в модуле классифицируют свойства на выходе. Вместо присвоения всем свойствам одинакового приоритета по важности и возврата их во всех сценариях мы классифицировали особые связанные свойства по наборам свойств. Проще говоря, наборы свойств — это пакеты из двух или более связанных свойств в командлете.

Самые крупные и часто используемые командлеты Get-EXO* используют наборы свойств:

В этих командлетах наборы свойств управляются следующими параметрами:

  • PropertySets: этот параметр принимает одно или больше доступных имен наборов свойств с разделителями-запятыми. Доступные наборы свойств описаны в наборах свойств в Exchange Online командлетах модуля PowerShell.
  • Properties: этот параметр принимает одно или больше имен свойств с разделителями-запятыми.

Вы можете использовать параметры PropertySets и Properties вместе в одной команде.

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

  • Если вы не используете параметры PropertySets или Properties, то автоматически получите свойства из набора Minimum.
  • Если вы используете параметры PropertySets или Properties, вы получите указанные свойства и свойства из набора Minimum.

В любом случае выход командлета будет содержать гораздо меньше свойств, результаты будут возвращены намного быстрее.

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

Get-EXOMailbox -ResultSize 10

Для сравнения: выходной результат той же команды Get-Mailbox вернул бы как минимум 230 свойств для каждого из первых десяти почтовых ящиков.

Примечание

Хотя параметр PropertySets принимает значение All, настоятельно рекомендуем не использовать это значение для получения всех свойств, так как замедлится работа команды и снизится надежность. Всегда используйте параметры PropertySets и Properties для получения минимального количества свойств, необходимых для вашего сценария.

Дополнительные сведения о фильтрации в модуле см. в разделе "Фильтры" Exchange Online PowerShell.

Заметки о выпуске

Если не указано иное, текущий выпуск Exchange Online PowerShell содержит все функции предыдущих выпусков.

Текущий выпуск: версия 3.0.0 (предварительная версия, известная как версия 2.0.6-PreviewX)

  • Функции, уже описанные в Обновления версии 3.0.0 (модуль EXO V3):
    • Проверка подлинности на основе сертификатов для обеспечения & соответствия требованиям PowerShell (версия 2.0.6-Preview5 или более поздняя).
    • Командлет Get-ConnectionInformation для подключений на основе REST (версия 2.0.6-Preview7 или более поздняя).
    • Параметр SkipLoadingFormatData в командлете Connect-ExchangeOnline для подключений на основе REST (версия 2.0.6-Preview8 или более поздняя).
  • Некоторые командлеты, которые использовались для запроса подтверждения в определенных сценариях, больше этого не делать. По умолчанию командлет выполняется до завершения.
  • Формат ошибки, возвращенной при неудачном выполнении командлета, был немного изменен. Исключение теперь содержит дополнительные данные (например, тип исключения), а FullyQualifiedErrorId не содержит FailureCategory. Формат ошибки может быть изменен.

Предыдущие выпуски

Версия 2.0.5

  • Новые командлеты Get-OwnerlessGroupPolicy и Set-OwnerlessGroupPolicy для управления группами Microsoft 365 без владельца.

    Примечание

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

  • Новые командлеты Get-VivaInsightsSettings и Set-VivaInsightsSettings для управления доступом пользователей к функциям Headspace в Viva Аналитике.

Версия 2.0.4

  • PowerShell 7 официально поддерживается в Windows, Linux и Apple macOS, как описано в разделе Exchange Online модуля PowerShell в этой статье.

  • Модуль в PowerShell 7 поддерживает единый вход на основе браузера и другие методы входа. Дополнительные сведения см. в разделе Возможности входа PowerShell 7.

  • Командлеты Set-UserAnalyticsConfig и Set-UserAnalyticsConfig заменены командлетами Get-MyAnalyticsConfig и Set-MyAnalyticsConfig. Кроме того, вы можете настроить доступ на уровне компонента. Дополнительные сведения см. в разделе Настройка MyAnalytics.

  • Применение политики в режиме реального времени и защиты во всех проверках подлинности на основе пользователей. В модуле включена непрерывная оценка доступа (CAE). Узнайте больше о CAE здесь.

  • Свойства LastUserActionTime и LastInteractionTime теперь доступны в выходных данных командлета Get-EXOMailboxStatistics.

  • В интерактивном процессе входа теперь используется более безопасный метод получения маркеров доступа с использованием безопасных URL-адресов ответа.

Версия 2.0.3

  • Общедоступная проверка подлинности на основе сертификатов (CBA), которая обеспечивает использование современной проверки подлинности при автоматических сценариях или сценариях с фоновой автоматизацией. Доступны следующие расположения хранилища сертификатов:
    • Удаленный в параметре Azure Key Value (Certificate). Этот параметр повышает уровень безопасности за счет получения сертификата только в среде выполнения.
    • Локальный в хранилище сертификатов CurrentUser или LocalMachine (параметр CertificateThumbprint).
    • Локальный в экспортированном файле сертификата (параметры CertificateFilePath и CertificatePassword). Дополнительные сведения см. в описании параметров в connect-ExchangeOnline и проверке подлинности только для приложений для автоматических сценариев в Exchange Online PowerShell.
  • Одновременное подключение к 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. Проверьте фильтры в Exchange Online PowerShell на наличие атрибутов, которые не поддерживаются в фильтрах.

Версия 0.4578.0

  • Добавлена поддержка настройки писем со сводкой дел для организации на уровне пользователя с применением командлетов Set-UserBriefingConfig и Get-UserBriefingConfig.
  • Поддержка очистки сеанса с помощью командлета Disconnect-ExchangeOnline. Этот командлет является эквивалентом Get-PSSession | Remove-PSSession V2. Кроме очистки объекта сеанса и локальных файлов, это также приводит к удалению маркера доступа из кэша, который используется для проверки подлинности в командлетах 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).
  • Остановите выполнение командлета на исключениях клиента.
  • Удаленная оболочка PowerShell содержит различные сложные типы данных, которые преднамеренно не поддерживаются в командлетах EXO для повышения производительности. Различия в несложных типах данных между удаленными командлетами PowerShell и командлетами V2 были устранены для беспрепятственного переноса сценариев управления.

Версия 0.3582.0

  • Поддержка префикса во время создания сеанса.
    • Можно создать только 1 сеанс за раз, содержащий командлеты с префиксами.
    • Обратите внимание на то, что командлеты EXO V2 не будут содержать префиксы, так как в них уже есть префикс EXO, поэтому не используйте EXO в качестве префикса.
  • Используйте командлеты EXO V2, даже если на клиентском компьютере отключена обычная проверка подлинности WinRM. Обратите внимание на то, что для удаленных командлетов PowerShell требуется обычная проверка подлинности WinRM, и они будут недоступны, если она отключена.
  • Параметр удостоверения для командлетов V2 теперь поддерживает имя и псевдоним. Обратите внимание на то, что использование псевдонимов или имен замедляет работу командлетов V2 и поэтому не рекомендуется.
  • Устранена проблема, из-за которой тип данных атрибутов, возвращаемых командлетом V2, отличался от тех, что возвращались командлетами PowerShell. У нас все еще есть несколько атрибутов с различными типами данных, и мы планируем их обработать в ближайшие месяцы.
  • Исправлена ошибка: проблема возникала при частых повторных подключениях сеансов при вызове Connect-ExchangeOnline с Credentials или UserPrincipalName

Версия 0.3555.1

  • Исправлена ошибка, из-за которой переданные командлеты не работали из-за проблемы с проверкой подлинности:

    Не удается вызвать канал, так как пространство выполнения не находится в открытом состоянии. Текущее состояние пространства выполнения — "закрыто".

Версия 0.3527.4

  • Обновлено содержимое Get-Help.
  • Устранена проблема в Get-Help, из-за которой параметр Online перенаправлял на несуществующую страницу с кодом ошибки 400.

Версия 0.3527.3

  • Добавлена поддержка управления Exchange для другого клиента с помощью потока делегирования.
  • Используется совместно с другими модулями PowerShell в одном окне PS.
  • Добавлена поддержка позиционных параметров.
  • Поле "Дата и время" теперь поддерживает языковой стандарт клиента.
  • Устранена ошибка, из-за которой параметр PSCredential становился пустым при передаче во время Connect-ExchangeOnline.
  • Устранена ошибка в модуле клиента, которая возникала, когда фильтр содержал $null.
  • Теперь у сеансов, созданных внутри в модуле EXO V2, есть имена (формат имен: ExchangeOnlineInternalSession_%SomeNumber%).
  • Исправлена ошибка, из-за которой удаленные командлеты PowerShell периодически давали сбой из-за разницы во времени между истечением срока действия маркера и отключением PSSession.
  • Значительное обновление безопасности.
  • Исправления ошибок и улучшения.