Подключение к Exchange Online PowerShell
В этой статье содержатся инструкции по подключению к Exchange Online PowerShell с помощью модуля Exchange Online PowerShell с многофакторной проверкой подлинности (MFA) или без нее.
Модуль Exchange Online PowerShell использует современную проверку подлинности для подключения ко всем связанным с Exchange средам PowerShell в Microsoft 365: Exchange Online PowerShell, безопасности & соответствия требованиям PowerShell и автономной exchange Online Protection (EOP) PowerShell. Дополнительные сведения о модуле Exchange Online PowerShell см. в статье Сведения о модуле Exchange Online PowerShell.
Сведения о подключении к Exchange Online PowerShell для автоматизации см. в разделах Проверка подлинности только для приложений для автоматических сценариев и Использование управляемых удостоверений Azure для подключения к Exchange Online PowerShell.
Сведения о подключении к Exchange Online PowerShell из C#, см. в статье Подключение к Exchange Online PowerShell с помощью C#.
Требования к установке и использованию модуля описаны в разделе Установка и обслуживание модуля PowerShell Exchange Online.
Примечание
Удаленные подключения PowerShell устарели в Exchange Online PowerShell. Дополнительные сведения см. в разделе Прекращение поддержки удаленной оболочки PowerShell в Exchange Online.
Для подключений REST API в модуле Exchange Online PowerShell версии 3 требуются модули PowerShellGet и PackageManagement. Дополнительные сведения см. в статье PowerShellGet для подключений на основе REST в Windows.
После подключения управление наличием доступа к командлетам и параметрам осуществляется путем управления доступом на основе ролей (RBAC). Дополнительные сведения см. в статье Разрешения в Exchange Online.
Сведения о необходимых разрешениях для запуска определенных командлетов Exchange Online см. в статье Поиск разрешений, необходимых для запуска командлета Exchange.
Совет
Возникли проблемы? Обратитесь на форум по Exchange Online.
Примечание
Если модуль уже установлен, обычно этот шаг можно пропустить и запустить Connect-ExchangeOnline , не загружая модуль вручную.
После установки модуля откройте окно PowerShell и загрузите модуль, выполнив следующую команду:
Import-Module ExchangeOnlineManagement
Примечание
Команды connect, скорее всего, завершатся ошибкой, если путь к профилю учетной записи, используемой для подключения, содержит специальные символы PowerShell (например, $
). Обходной путь заключается в подключении с помощью другой учетной записи, которая не содержит специальных символов в пути к профилю.
В команде, которую вам нужно выполнить, используется следующий синтаксис:
Connect-ExchangeOnline -UserPrincipalName <UPN> [-ExchangeEnvironmentName <Value>] [-ShowBanner:$false] [-DelegatedOrganization <String>] [-SkipLoadingFormatData]
Дополнительные сведения о синтаксисе и параметрах см. в статье Connect-ExchangeOnline.
<Имя> участника-пользователя — это ваша учетная запись в формате имени участника-пользователя (например,
navin@contoso.onmicrosoft.com
).При использовании модуля EXO версии 3 (версии 3.0.0 или более поздней версии) и прекращения подключения обычной проверки подлинности (удаленный PowerShell) к Exchange Online вы используете только командлеты REST API. Дополнительные сведения см. в разделе Подключения REST API в модуле EXO версии 3.
Если вы используете параметр ExchangeEnvironmentName, вам не требуется применять параметры ConnectionUri или AzureADAuthorizationEndPointUrl. Общие значения для параметра ExchangeEnvironmentName описаны в следующей таблице:
Среда Значение Microsoft 365 или Microsoft 365 GCC н/д* Microsoft 365 GCC High O365USGovGCCHigh
Microsoft 365 DoD O365USGovDoD
Office 365 Germany O365GermanyCloud
Служба Office 365, предоставляемая 21Vianet O365China
* Обязательное значение
O365Default
также является значением по умолчанию, поэтому не нужно использовать параметр ExchangeEnvironmentName в средах Microsoft 365 или Microsoft 365 GCC.В параметре DelegatedOrganization указывается организация клиента, которой вы хотите управлять в качестве авторизованного партнера корпорации Майкрософт. Дополнительные сведения см. в примерах подключения далее в этой статье.
В зависимости от характера организации можно опустить параметр UserPrincipalName в команде подключения. Вместо этого введите имя пользователя и пароль или выберите сохраненные учетные данные после выполнения команды Connect-ExchangeOnline. Если это не сработает, необходимо использовать параметр UserPrincipalName.
Если вы не используете многофакторную проверку подлинности, у вас должна быть возможность применить параметр Credential вместо параметра UserPrincipalName. Сначала запустите команду
$Credential = Get-Credential
, введите имя пользователя и пароль, а затем используйте имя переменной для параметра Credential (-Credential $Credential
). Если это не сработает, необходимо использовать параметр UserPrincipalName.Используйте переключатель SkipLoadingFormatData , чтобы избежать ошибок при подключении к Exchange Online PowerShell из службы Windows.
Для использования модуля в PowerShell 7 требуется версия 2.0.4 или более поздняя.
Примеры подключения в следующих разделах используют современную проверку подлинности и не могут использовать обычную проверку подлинности.
Следующие примеры работают в Windows PowerShell 5.1 и PowerShell 7 для учетных записей с MFA или без нее:
В этом примере выполняется подключение к Exchange Online PowerShell в организации Microsoft 365 или Microsoft 365 GCC:
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com
В этом примере выполняется подключение к Exchange Online PowerShell в организации Microsoft GCC High:
Connect-ExchangeOnline -UserPrincipalName laura@blueyonderairlines.us -ExchangeEnvironmentName O365USGovGCCHigh
В этом примере выполняется подключение к Exchange Online PowerShell в организации Microsoft 365 DoD:
Connect-ExchangeOnline -UserPrincipalName julia@adatum.mil -ExchangeEnvironmentName O365USGovDoD
В этом примере выполняется подключение к Exchange Online PowerShell в организации Office 365 Germany:
Connect-ExchangeOnline -UserPrincipalName lukas@fabrikam.de -ExchangeEnvironmentName O365GermanyCloud
В открывшемся окне входа введите пароль и нажмите кнопку Войти.
Примечание
В PowerShell 7 по умолчанию используется единый вход на основе браузера, поэтому запрос на вход открывается в веб-браузере по умолчанию, а не в автономном диалоговом окне.
Только многофакторная проверка подлинности: Код проверки создается и отправляется на основе варианта ответа, настроенного для вашей учетной записи (например, текстовое сообщение или приложение Microsoft Authenticator на вашем устройстве).
В открывшемся окне введите код проверки и нажмите кнопку Подтвердить.
В PowerShell 7 для учетных записей без MFA этот пример запрашивает учетные данные в окне PowerShell:
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -InlineCredential
В PowerShell 7 для учетных записей с MFA или без нее для проверки подлинности и завершения подключения используется другой компьютер. Как правило, этот метод используется на компьютерах, на которых нет веб-браузеров (пользователи не могут ввести свои учетные данные в PowerShell 7):
Выполните следующую команду на компьютере, к которому требуется подключиться:
Connect-ExchangeOnline -Device
Команда подключения ожидает следующие выходные данные:
Чтобы войти в систему, откройте страницу https://microsoft.com/devicelogin в веб-браузере и введите код <XXXXXXXXXX для> проверки подлинности.
Обратите внимание на <значение кода XXXXXXXXXXX> .
На любом другом устройстве с веб-браузером и доступом к Интернету <откройте https://microsoft.com/devicelogin и введите значение кода XXXXXXXXX> из предыдущего шага.
Введите учетные данные на результирующие страницы.
В запросе на подтверждение нажмите кнопку Продолжить. Следующее сообщение должно указывать на успешное выполнение, и вы можете закрыть браузер или вкладку.
Команда из шага 1 продолжает подключать вас к Exchange Online PowerShell.
Полные инструкции см. в разделах Проверка подлинности только для приложений для автоматических сценариев в Exchange Online PowerShell и Безопасность & соответствие PowerShell.
Дополнительные сведения о партнерах и организациях клиентов см. в следующих разделах:
- Что такое программа поставщика облачных решений (CSP)?
- Общие сведения о детализированных делегированных правах администратора (GDAP)
В этом примере выполняется подключение к организациям клиентов в следующих сценариях:
Подключитесь к организации клиента с помощью учетной записи CSP.
Подключитесь к организации клиента с помощью GDAP.
Подключитесь к клиентской организации в качестве гостевого пользователя.
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com
Дополнительные сведения см. в статье Использование управляемых удостоверений Azure для подключения к Exchange Online PowerShell.
Управляемое удостоверение, назначаемое системой:
Connect-ExchangeOnline -ManagedIdentity -Organization "cohovinyard.onmicrosoft.com"
Назначаемое пользователем управляемое удостоверение:
Connect-ExchangeOnline -ManagedIdentity -Organization "constoso.onmicrosoft.com" -ManagedIdentityAccountId <ManagedIdentityAccountIdGuid>
Не забудьте отключить сеанс по завершении. Если вы закроете окно PowerShell, не отключая сеанс, вы можете использовать все доступные сеансы и дождаться окончания срока действия сеансов. Чтобы отключить сеанс, выполните следующую команду:
Disconnect-ExchangeOnline
Чтобы отключиться без запроса на подтверждение, выполните следующую команду:
Disconnect-ExchangeOnline -Confirm:$false
Примечание
Команда отключения, скорее всего, завершится ошибкой, если путь к профилю учетной записи, используемой для подключения, содержит специальные символы PowerShell (например, $
). Обходной путь заключается в подключении с помощью другой учетной записи, которая не содержит специальных символов в пути к профилю.
Если вы не получили никаких ошибок, подключение выполнено успешно. Краткий тест заключается в том, чтобы запустить командлет PowerShell Exchange Online, например Get-AcceptedDomain, и просмотреть результаты.
Если возникают ошибки, просмотрите список возможных причин ниже.
Распространенная проблема — неправильный пароль. Выполните шаги подключения еще раз и обратите внимание на имя пользователя и пароль, которые вы используете.
Учетная запись, используемая для подключения, должна быть включена для доступа к PowerShell. Дополнительные сведения см. в статье Включение и отключение доступа к Exchange Online PowerShell.
Необходимо открыть TCP-порт 80 для трафика между локальным компьютером и Microsoft 365. Вполне вероятно, что он уже открыт, но в этом следует убедиться, если в вашей организации действует политика ограниченного доступа к Интернету.
Если в вашей организации используется федеративная проверка подлинности и ваш поставщик удостоверений (IDP) и/или служба маркеров безопасности (STS) не являются общедоступными, вы не сможете использовать федеративную учетную запись для подключения к Exchange Online PowerShell. Вместо этого вам нужно создать и использовать нефедеративную учетную запись в Microsoft 365, чтобы подключиться к Exchange Online PowerShell.
Для подключений на основе REST к Exchange Online PowerShell требуется модуль PowerShellGet, а по зависимости — модуль PackageManagement, поэтому при попытке подключиться без их установки вы получите ошибки. Например, может появиться следующая ошибка:
Термин Update-ModuleManifest не распознается как имя командлета, функции, файла скрипта или действующей программы. Проверьте орфографию имени или в случае включения пути проверьте правильность указания пути и повторите попытку.
Дополнительные сведения о требованиях к модулю PowerShellGet и PackageManagement см. в статье PowerShellGet для подключений на основе REST в Windows.
После подключения может появиться сообщение об ошибке, которое выглядит следующим образом:
Не удалось загрузить файл или сборку "System.IdentityModel.Tokens.Jwt,Version=Version,Culture<>=neutral, PublicKeyToken=<TokenValue>". Не удалось найти или загрузить определенный файл.
Эта ошибка возникает, когда модуль PowerShell Exchange Online конфликтует с другим модулем, импортированным в пространство выполнения. Попробуйте подключиться в новом окне Windows PowerShell перед импортом других модулей.
В этом разделе предпринята попытка сравнить старые методы подключения, которые были заменены модулем PowerShell Exchange Online. Процедуры обычной проверки подлинности и маркера OAuth включены только для справки за прошлые периоды и больше не поддерживаются.
Модуль PowerShell Exchange Online с интерактивным запросом учетных данных:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com
Модуль PowerShell Exchange Online без интерактивного запроса учетных данных:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) Connect-ExchangeOnline -Credential $o365cred
Обычная проверка подлинности:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/ -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
New-PSSession с токеном OAuth:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?BasicAuthToOAuthConversion=true -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Модуль PowerShell Exchange Online с интерактивным запросом учетных данных:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com
Обычная проверка подлинности: недоступно.
New-PSSession с маркером OAuth: недоступно.
Модуль PowerShell Для Exchange Online:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.com
Обычная проверка подлинности:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
New-PSSession с токеном OAuth:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/? DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Модуль PowerShell Для Exchange Online:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.com
Обычная проверка подлинности:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
New-PSSession с токеном OAuth:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Модуль PowerShell Для Exchange Online:
Connect-ExchangeOnline -UserPrincipalName admin@contoso.onmicrosoft.com -DelegatedOrganization delegated.onmicrosoft.com
Обычная проверка подлинности:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
New-PSSession с токеном OAuth:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?DelegatedOrg=delegated.onmicrosoft.com&BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@delegated.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Модуль PowerShell Для Exchange Online:
Отпечаток сертификата:
Примечание
Параметр CertificateThumbprint поддерживается только в Microsoft Windows.
Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"
Объект Certificate:
Connect-ExchangeOnline -Certificate <%X509Certificate2Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"
Файл сертификата:
Connect-ExchangeOnline -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (ConvertTo-SecureString -String "<Password>" -AsPlainText -Force) -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contoso.onmicrosoft.com"
Дополнительные сведения см. в разделах Проверка подлинности только для приложений для автоматических сценариев в Exchange Online PowerShell и Безопасность & соответствия требованиям PowerShell.
Обычная проверка подлинности:
$secpasswd = ConvertTo-SecureString '<Password>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $secpasswd) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/ -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
New-PSSession с токеном OAuth:
$oauthTokenAsPassword = ConvertTo-SecureString '<EncodedOAuthToken>' -AsPlainText -Force $o365cred = New-Object System.Management.Automation.PSCredential ("admin@contoso.onmicrosoft.com", $oauthTokenAsPassword) $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/PowerShell-LiveID/?BasicAuthToOAuthConversion=true&email=SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}@contoso.onmicrosoft.com -Credential $o365cred -Authentication Basic -AllowRedirection Import-PSSession $Session
Модуль PowerShell Для Exchange Online:
Управляемое удостоверение, назначаемое системой:
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com"
Управляемое удостоверение, назначаемое пользователем:
Connect-ExchangeOnline -ManagedIdentity -Organization "contoso.onmicrosoft.com" -ManagedIdentityAccountId <UserAssignedManagedIdentityPrincipalIdValue>
Дополнительные сведения см. в статье Использование управляемых удостоверений Azure для подключения к Exchange Online PowerShell.
Обычная проверка подлинности: недоступно.
New-PSSession с маркером OAuth: недоступно.