Подключение к PowerShell безопасности и соответствия требованиям

В этой статье содержатся инструкции по подключению к PowerShell по обеспечению соответствия требованиям безопасности & с помощью модуля PowerShell Exchange Online с многофакторной проверкой подлинности (MFA) или без нее.

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

Сведения о подключении к PowerShell & соответствия требованиям безопасности для автоматизации см. в статье Проверка подлинности только для приложений для автоматических сценариев.

Что нужно знать перед началом работы

Шаг 1. Загрузка модуля PowerShell Exchange Online

Примечание.

Если модуль уже установлен, обычно этот шаг можно пропустить и запустить Connect-IPPSSession, не загружая модуль вручную.

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

Import-Module ExchangeOnlineManagement

Шаг 2. Подключение и проверка подлинности

Примечание.

Команды connect, скорее всего, завершатся ошибкой, если путь к профилю учетной записи, используемой для подключения, содержит специальные символы PowerShell (например, $). Обходной путь заключается в подключении с помощью другой учетной записи, которая не содержит специальных символов в пути к профилю.

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

Connect-IPPSSession -UserPrincipalName <UPN> [-ConnectionUri <URL>] [-AzureADAuthorizationEndpointUri <URL>] [-DelegatedOrganization <String>] [-PSSessionOption $ProxyOptions]

Подробные сведения о синтаксисе и параметрах см. в статье Подключение IPPSSession.

  • <Имя> участника-пользователя — это ваша учетная запись в формате имени участника-пользователя (например, navin@contoso.onmicrosoft.com).

  • Требуемые значения ConnectionUri и AzureADAuthorizationEndpointUri зависят от характера организации Microsoft 365. Общие значения описаны в следующем списке:

    • Microsoft 365 или Microsoft 365 GCC:
      • ConnectionUri: Нет. Обязательное значение https://ps.compliance.protection.outlook.com/powershell-liveid/ также является значением по умолчанию, поэтому не нужно использовать параметр ConnectionUri в средах Microsoft 365 или Microsoft 365 GCC.
      • AzureADAuthorizationEndpointUri: нет. Обязательное значение https://login.microsoftonline.com/common также является значением по умолчанию, поэтому не нужно использовать параметр AzureADAuthorizationEndpointUri в средах Microsoft 365 или Microsoft 365 GCC.
    • Microsoft 365 GCC High:
      • ConnectionUri: https://ps.compliance.protection.office365.us/powershell-liveid/
      • AzureADAuthorizationEndpointUri: https://login.microsoftonline.us/common
    • Microsoft 365 DoD:
      • ConnectionUri: https://l5.ps.compliance.protection.office365.us/powershell-liveid/
      • AzureADAuthorizationEndpointUri: https://login.microsoftonline.us/common
    • Office 365 управляется 21Vianet:
      • ConnectionUri: https://ps.compliance.protection.partner.outlook.cn/powershell-liveid
      • AzureADAuthorizationEndpointUri: https://login.chinacloudapi.cn/common
  • Если вы используете прокси-сервер, можно использовать параметр PSSessionOption в команде подключения. Сначала выполните следующую команду: $ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>, где <значение> равно IEConfig, WinHttpConfigили AutoDetect. Затем используйте значение $ProxyOptions параметра PSSessionOption . Дополнительные сведения см. в статье New-PSSessionOption.

  • В зависимости от характера вашей организации вы можете опустить параметр UserPrincipalName на следующем шаге. Вместо этого введите имя пользователя и пароль или выберите сохраненные учетные данные после выполнения команды Connect-IPPSSession. Если это не сработает, необходимо использовать параметр UserPrincipalName.

  • Если вы не используете многофакторную проверку подлинности, у вас должна быть возможность применить параметр Credential вместо параметра UserPrincipalName. Сначала запустите команду $Credential = Get-Credential, введите имя пользователя и пароль, а затем используйте имя переменной для параметра Credential (-Credential $Credential). Если это не сработает, необходимо использовать параметр UserPrincipalName.

Подключение к PowerShell для обеспечения соответствия требованиям безопасности & с помощью интерактивного запроса на вход

  1. Следующие примеры работают в Windows PowerShell 5.1 и PowerShell 7 для учетных записей с MFA или без нее:

    • В этом примере выполняется подключение к оболочке PowerShell безопасности и соответствия требованиям в организации Microsoft 365 или Microsoft 365 GCC:

      Connect-IPPSSession -UserPrincipalName navin@contoso.onmicrosoft.com
      
    • В этом примере выполняется подключение к оболочке PowerShell безопасности и соответствия требованиям в организации Microsoft GCC High:

      Connect-IPPSSession -UserPrincipalName chris@govt.us -ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common
      
    • В этом примере выполняется подключение к оболочке PowerShell безопасности и соответствия требованиям в организации Microsoft 365 DoD:

      Connect-IPPSSession -UserPrincipalName michelle@govt.mil -ConnectionUri https://l5.ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common
      
    • В этом примере выполняется подключение к оболочке PowerShell безопасности и соответствия требованиям в организации Office 365, предоставляемой 21Vianet:

      Connect-IPPSSession -UserPrincipalName li@fabrikam.cn -ConnectionUri https://ps.compliance.protection.partner.outlook.cn/powershell-liveid -AzureADAuthorizationEndpointUri https://login.chinacloudapi.cn/common
      
  2. В открывшемся окне входа введите пароль и нажмите кнопку Войти.

    Введите пароль в окне входа в учетную запись.

    Примечание.

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

  3. Только многофакторная проверка подлинности: Код проверки создается и отправляется на основе варианта ответа, настроенного для вашей учетной записи (например, текстовое сообщение или приложение Microsoft Authenticator на вашем устройстве).

    В открывшемся окне введите код проверки и нажмите кнопку Подтвердить.

    Введите код проверки в окне входа в учетную запись.

Подключение к PowerShell по обеспечению безопасности & соответствия требованиям без запроса на вход (автоматические скрипты)

Полные инструкции см. в разделах Проверка подлинности только для приложений для автоматических сценариев в Exchange Online PowerShell и Безопасность & соответствия Требованиям PowerShell.

Подключение к PowerShell для обеспечения безопасности & соответствия требованиям в организациях клиентов

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

В разделе Безопасность & соответствия Требованиям PowerShell необходимо использовать AzureADAuthorizationEndpointUri с параметром DelegatedOrganization .

Дополнительные сведения о партнерах и организациях клиентов см. в следующих разделах:

В этом примере выполняется подключение к организациям клиентов в следующих сценариях:

  • Подключитесь к организации клиента с помощью учетной записи CSP.

  • Подключитесь к организации клиента с помощью GDAP.

  • Подключитесь к клиентской организации в качестве гостевого пользователя.

    Connect-IPPSSession -UserPrincipalName navin@contoso.onmicrosoft.com -DelegatedOrganization adatum.onmicrosoft.com -AzureADAuthorizationEndpointUri https://login.microsoftonline.com/adatum.onmicrosoft.com
    

Шаг 3. Отключение по завершении

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

Disconnect-ExchangeOnline

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

Disconnect-ExchangeOnline -Confirm:$false

Примечание.

Команда отключения, скорее всего, завершится ошибкой, если путь к профилю учетной записи, используемой для подключения, содержит специальные символы PowerShell (например, $). Обходной путь заключается в подключении с помощью другой учетной записи, которая не содержит специальных символов в пути к профилю.

Как узнать, что подключение выполнено успешно?

Командлеты PowerShell безопасности и соответствия требованиям импортируются в локальный сеанс Windows PowerShell и отслеживаются с помощью индикатора выполнения. Если вы не получили никаких ошибок, подключение выполнено успешно. Чтобы выполнить быструю проверку, запустите командлет PowerShell безопасности и соответствия требованиям, например Get-RetentionCompliancePolicy, и просмотрите результаты.

Если возникают ошибки, просмотрите список возможных причин ниже.

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

  • Учетная запись, используемая для подключения, должна быть включена для PowerShell. Дополнительные сведения см. в статье Включение и отключение доступа к Exchange Online PowerShell.

  • Необходимо открыть TCP-порт 80 для трафика между локальным компьютером и Microsoft 365. Вполне вероятно, что он уже открыт, но в этом следует убедиться, если в вашей организации действует политика ограниченного доступа к Интернету.

  • Для подключений на основе REST к Безопасности & соответствия требованиям PowerShell требуется модуль PowerShellGet, а по зависимости — модуль PackageManagement, поэтому при попытке подключения без их установки вы получите ошибки. Например, может появиться следующая ошибка:

    Термин Update-ModuleManifest не распознается как имя командлета, функции, файла скрипта или действующей программы. Проверьте орфографию имени или в случае включения пути проверьте правильность указания пути и повторите попытку.

    Дополнительные сведения о требованиях к модулю PowerShellGet и PackageManagement см. в статье PowerShellGet для подключений на основе REST в Windows.

  • Если IP-адрес клиента изменяется во время выполнения запроса на подключение, подключение может завершиться сбоем. Это может произойти, если в вашей организации используется пул преобразования сетевого адреса источника (SNAT), который содержит несколько IP-адресов. Ошибка подключения выглядит так:

    Сбой запроса удаленной оболочки Windows с идентификатором> ShellId<, так как оболочка не найдена на сервере. Возможные причины: идентификатор ShellId указан неправильно или оболочки больше нет на сервере. Укажите правильный идентификатор ShellId или создайте новую оболочку и повторите попытку.

    Чтобы устранить эту проблему, используйте пул SNAT, содержащий один IP-адрес, или принудительно назначьте определенный IP-адрес для подключения к конечной точке оболочки PowerShell Центра безопасности и соответствия требованиям.