Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье содержатся инструкции по подключению к Exchange Online PowerShell с помощью модуля Exchange Online PowerShell с многофакторной проверкой подлинности (MFA) или без нее.
Совет
Инструкции по подключению, приведенные в этой статье, также относятся к встроенной надстройке безопасности для локальных почтовых ящиков.
Модуль Exchange Online PowerShell использует современную проверку подлинности для подключения к Exchange Online PowerShell и Security & Compliance PowerShell. Дополнительные сведения о модуле PowerShell Exchange Online см. в статье О модуле PowerShell Exchange Online.
Сведения о подключении к автоматической оболочке Exchange Online см. в статьях "Автоматическая проверка подлинности только в приложении" и "Использование управляемых удостоверений Azure для подключения к Exchange Online PowerShell".
Сведения о том, как подключиться к Exchange Online PowerShell из C#, см. в статье "Подключение к Exchange Online PowerShell с помощью C#".
Что нужно знать перед началом работы
Требования к установке и использованию модуля описаны в разделах Необходимые условия для модуля PowerShell Exchange Online и Поддерживаемые операционные системы для модуля PowerShell для Exchange Online.
После подключения управление доступом на основе ролей (RBAC) управляет командлетами и параметрами, к которым у вас есть или нет доступа. Дополнительные сведения см. в статье Разрешения в Exchange Online.
Сведения о необходимых разрешениях для запуска определенных командлетов Exchange Online см. в статье Поиск разрешений, необходимых для запуска командлета Exchange.
Шаг 1. Загрузка модуля PowerShell Exchange Online
Примечание.
Если модуль уже установлен, обычно можно пропустить этот шаг и запустить Connect-ExchangeOnline без предварительной загрузки модуля вручную.
После установки модуля откройте окно PowerShell и загрузите модуль, выполнив следующую команду:
Import-Module ExchangeOnlineManagement
Шаг 2. Подключение и проверка подлинности
Примечание.
Команды подключения, скорее всего, не будут выполнены, если путь к профилю учетной записи, использованной для подключения, содержит специальные символы PowerShell (например, $). В качестве обходного решения можно подключиться с помощью другой учетной записи, в пути к профилю которой нет специальных символов.
В команде, которую вам нужно выполнить, используется следующий синтаксис:
Connect-ExchangeOnline [-UserPrincipalName <UPN>] [-ExchangeEnvironmentName <Value>] [-ShowBanner:$false] [-LoadCmdletHelp] [-DelegatedOrganization <String>] [-SkipLoadingFormatData] [-DisableWAM]
Дополнительные сведения о синтаксисе и параметрах см. в статье Connect-ExchangeOnline.
<UPN> — это ваша учетная запись в формате имени участника-пользователя (например,
navin@contoso.onmicrosoft.com).Если вы используете параметр ExchangeEnvironmentName, вам не требуется применять параметры ConnectionUri или AzureADAuthorizationEndPointUrl. Общие значения параметра ExchangeEnvironmentName описаны в следующей таблице:
Среда Значение Microsoft 365 или Microsoft 365 GCC н/д* Microsoft 365 GCC High O365USGovGCCHighMicrosoft 365 DoD O365USGovDoDOffice 365 Germany O365GermanyCloudСлужба Office 365, предоставляемая 21Vianet O365China* Обязательное значение
O365Defaultтакже является значением по умолчанию, поэтому вам не нужно использовать параметр ExchangeEnvironmentName в средах Microsoft 365 или Microsoft 365 GCC.В версии 3.7.0 и более поздних версиях справка командной строки для командлетов PowerShell в Exchange Online больше не загружается по умолчанию. Используйте ключ LoadCmdletHelp, чтобы справка по командлетам PowerShell Exchange Online была доступна командлету Get-Help.
В параметре DelegatedOrganization указывается организация клиента, которой вы хотите управлять в качестве авторизованного партнера корпорации Майкрософт. Дополнительные сведения см. в примерах подключений далее в этой статье.
В зависимости от характера вашей организации можно опустить параметр UserPrincipalName в команде подключения. Вместо этого введите имя пользователя и пароль или выберите сохраненные учетные данные после выполнения команды Connect-ExchangeOnline. Если это не сработает, необходимо использовать параметр UserPrincipalName.
Если вы не используете многофакторную проверку подлинности, у вас должна быть возможность применить параметр Credential вместо параметра UserPrincipalName. Сначала запустите команду
$Credential = Get-Credential, введите имя пользователя и пароль, а затем используйте имя переменной для параметра Credential (-Credential $Credential). Если это не сработает, необходимо использовать параметр UserPrincipalName.Используйте переключатель SkipLoadingFormatData, чтобы избежать ошибок при подключении к Exchange Online PowerShell из службы Windows.
Для PowerShell 7 требуется версия 2.0.4 или более поздняя.
В версии 3.7.2 и более поздних версиях доступен параметр DisableWAM для отключения диспетчера учетных веб-записей (WAM) при возникновении ошибок подключения, связанных с WAM.
В примерах подключений в следующих разделах используется современная проверка подлинности, и базовая проверка подлинности недоступна.
Подключение к Exchange Online PowerShell с помощью интерактивного запроса на вход
Следующие примеры работают в 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 по умолчанию используется единый вход (SSO) на основе браузера, поэтому запрос на вход открывается в веб-браузере по умолчанию, а не в отдельном диалоговом окне.
Только MFA: код проверки создается и доставляется на основе варианта ответа, настроенного для вашей учетной записи (например, текстовое сообщение или приложение Microsoft Authenticator на вашем устройстве).
В открывшемся окне проверки введите код проверки и выберите "Проверить".
Исключающие методы подключения PowerShell 7
В PowerShell 7 для учетных записей без MFA в этом примере запрашиваются учетные данные в окне PowerShell:
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -InlineCredentialВ PowerShell 7 для учетных записей с MFA или без нее в этом примере для проверки подлинности и выполнения подключения используется другой компьютер. Как правило, этот метод используется на компьютерах без веб-браузеров (пользователи не могут вводить свои учетные данные в PowerShell 7):
Выполните следующую команду на компьютере, на котором требуется выполнить подключение:
Connect-ExchangeOnline -DeviceКоманда подключения ожидает следующих выходных данных:
Для входа откройте страницу https://microsoft.com/devicelogin в веб-браузере и введите код <XXXXXXXXX> для проверки подлинности.
Обратите внимание на <значение кода XXXXXXXXX> .
На любом другом устройстве с веб-браузером и доступом в Интернет откройте https://microsoft.com/devicelogin и введите <значение кода XXXXXXXXX> из предыдущего шага.
Введите свои учетные данные на появившихся страницах.
В запросе подтверждения выберите Продолжить. Следующее сообщение должно указывать на успех, и вы можете закрыть браузер или вкладку.
Команда из шага 1 по-прежнему подключает вас к Exchange Online PowerShell.
Подключение к Exchange Online PowerShell без запроса на вход (автоматические сценарии)
Полные инструкции см. в разделах Проверка подлинности только в приложении для автоматических сценариев в Exchange Online PowerShell и Security & Compliance PowerShell.
Подключение к Exchange Online PowerShell в организациях клиентов
Дополнительные сведения о партнерах и организациях-заказчиках см. в следующих статьях:
- Что такое программа "Поставщик облачных решений" (CSP?).
- Общие сведения о детализированных делегированных привилегиях администратора (GDAP)
В этом примере осуществляется подключение к организациям клиентов в следующих сценариях:
Подключение к организации клиента с помощью учетной записи CSP.
Подключение к организации-клиенту с помощью GDAP.
Подключиться к организации клиента в качестве гостя.
Connect-ExchangeOnline -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com
Подключение к Exchange Online PowerShell с помощью управляемого удостоверения
Дополнительные сведения см. в статье Использование управляемых удостоверений Azure для подключения к Exchange Online PowerShell.
Назначенное системой управляемое удостоверение:
Connect-ExchangeOnline -ManagedIdentity -Organization "cohovinyard.onmicrosoft.com"Назначенное пользователем управляемое удостоверение:
Connect-ExchangeOnline -ManagedIdentity -Organization "constoso.onmicrosoft.com" -ManagedIdentityAccountId <ManagedIdentityAccountIdGuid>
Шаг 3. Отключение после завершения
Не забудьте отключить сеанс после завершения. Если закрыть окно 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 к PowerShell в Exchange Online требуется модуль PowerShellGet. В зависимости для модуля 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 $SessionNew-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: недоступно.
Подключение к организации-клиенту с помощью учетной записи CSP
Модуль 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 $SessionNew-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
Подключение к организации клиента с помощью GDAP
Модуль 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 $SessionNew-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 $SessionNew-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"Объект сертификата:
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 и Security & Compliance 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 $SessionNew-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: недоступно.