다음을 통해 공유


Security & Compliance PowerShell에 연결

이 문서에는 MFA(다단계 인증)를 사용하거나 사용하지 않고 Exchange Online PowerShell 모듈을 사용하여 보안 & 준수 PowerShell에 연결하는 방법에 대한 지침이 포함되어 있습니다.

Exchange Online PowerShell 모듈은 최신 인증을 사용하여 Exchange Online PowerShell 및 보안 & 준수 PowerShell에 연결합니다. Exchange Online PowerShell 모듈에 대한 자세한 내용은 Exchange Online PowerShell 모듈 정보를 참조하세요.

자동화를 위해 보안 & 준수 PowerShell에 연결하려면 무인 스크립트에 대한 앱 전용 인증을 참조하세요.

시작하기 전에 알아야 할 사항은 무엇인가요?

1단계: Exchange Online PowerShell 모듈 로드

참고

모듈이 이미 설치된 경우 일반적으로 이 단계를 건너뛰고 먼저 모듈을 수동으로 로드하지 않고 Connect-IPPSSession 을 실행할 수 있습니다.

모듈을 설치한 후 PowerShell 창을 열고 다음 명령을 실행하여 모듈을 로드합니다.

Import-Module ExchangeOnlineManagement

2단계: 연결 및 인증

참고

연결하는 데 사용한 계정의 프로필 경로에 특수 PowerShell 문자(예 $: )가 포함된 경우 연결 명령이 실패할 수 있습니다. 해결 방법은 프로필 경로에 특수 문자가 없는 다른 계정을 사용하여 연결하는 것입니다.

실행해야 하는 명령은 다음 구문을 사용합니다.

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

구문과 매개 변수에 대한 자세한 내용은 Connect-IPPSSession을 참조합니다.

  • <UPN> 은 사용자 계정 이름 형식(예: navin@contoso.onmicrosoft.com)의 계정입니다.

  • 필요한 ConnectionUriAzureADAuthorizationEndpointUri 값은 Microsoft 365 organization 특성에 따라 달라집니다. 일반적인 값은 다음 목록에 설명되어 있습니다.

    • Microsoft 365 또는 Microsoft 365 GCC:
      • ConnectionUri: 없음. 필수 값 https://ps.compliance.protection.outlook.com/powershell-liveid/ 도 기본값이므로 Microsoft 365 또는 Microsoft 365 GCC 환경에서 ConnectionUri 매개 변수를 사용할 필요가 없습니다.
      • AzureADAuthorizationEndpointUri: None. 필수 값 https://login.microsoftonline.com/organizations이지만 기본값이기도 하므로 Microsoft 365 또는 Microsoft 365 GCC 환경에서 AzureADAuthorizationEndpointUri 매개 변수를 사용할 필요가 없습니다.
    • Microsoft 365 GCC High:
      • ConnectionUri: https://ps.compliance.protection.office365.us/powershell-liveid/
      • AzureADAuthorizationEndpointUri: https://login.microsoftonline.us/organizations*
    • Microsoft 365 DoD:
      • ConnectionUri: https://l5.ps.compliance.protection.office365.us/powershell-liveid/
      • AzureADAuthorizationEndpointUri: https://login.microsoftonline.us/organizations*
    • 21Vianet에서 운영하는 Office 365:
      • ConnectionUri: https://ps.compliance.protection.partner.outlook.cn/powershell-liveid
      • AzureADAuthorizationEndpointUri: https://login.chinacloudapi.cn/organizations*

    *로 끝나는 /organizationsAzureADAuthorizationEndpointUri 값은 회사 또는 학교 계정만 허용합니다. 로 끝나는 /common 이전 URI 값은 여전히 작동하지만 개인 계정 회사 또는 학교 계정 중에서 선택하라는 메시지가 표시될 수 있습니다. 소비자 계정을 제외해야 하는 엔터프라이즈 시나리오에서 URI 값을 사용하는 것이 좋습니다 /organizations .

  • 프록시 서버 뒤에 있는 경우 연결 명령에서 PSSessionOption 매개 변수를 사용할 수 있습니다. 먼저 다음 명령을 실행합니다$ProxyOptions = New-PSSessionOption -ProxyAccessType <Value>. 여기서 <Value>는 , WinHttpConfig또는 AutoDetect입니다IEConfig. 그런 다음 PSSessionOption 매개 변수의 값을 $ProxyOptions 사용합니다. 자세한 내용은 New-PSSessionOption을 참조하세요.

  • 조직의 특성에 따라 다음 단계에서 UserPrincipalName 매개 변수를 생략할 수 있습니다. 대신 사용자 이름과 암호를 입력하거나 Connect-IPPSSession 명령을 실행한 후 저장된 자격 증명을 선택합니다. 작동하지 않으면 UserPrincipalName 매개 변수를 사용해야 합니다.

  • MFA를 사용하지 않는 경우 UserPrincipalName 매개 변수 대신 Credential 매개 변수를 사용할 수 있습니다. 먼저 $Credential = Get-Credential 명령을 실행하고 사용자 이름과 암호를 입력한 다음 Credential 매개 변수(-Credential $Credential)에 대한 변수 이름을 사용합니다. 작동하지 않으면 UserPrincipalName 매개 변수를 사용해야 합니다.

대화형 로그인 프롬프트를 사용하여 보안 & 준수 PowerShell에 연결

  1. 다음 예제는 MFA를 사용하거나 사용하지 않는 계정에 대해 Windows PowerShell 5.1 및 PowerShell 7에서 작동합니다.

    • 이 예제는 Microsoft 365 또는 Microsoft 365 GCC 조직의 보안 및 규정 준수 PowerShell에 연결됩니다.

      Connect-IPPSSession -UserPrincipalName navin@contoso.onmicrosoft.com
      
    • 이 예제는 Microsoft GCC High 조직의 보안 및 규정 준수 PowerShell에 연결됩니다.

      Connect-IPPSSession -UserPrincipalName chris@govt.us -ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/organizations
      
    • 이 예제는 Microsoft 365 DoD 조직의 보안 및 규정 준수 PowerShell에 연결됩니다.

      Connect-IPPSSession -UserPrincipalName michelle@govt.mil -ConnectionUri https://l5.ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/organizations
      
    • 이 예는 21Vianet 조직에서 운영하는 Office 365의 보안 및 규정 준수 PowerShell에 연결합니다.

      Connect-IPPSSession -UserPrincipalName li@fabrikam.cn -ConnectionUri https://ps.compliance.protection.partner.outlook.cn/powershell-liveid -AzureADAuthorizationEndpointUri https://login.chinacloudapi.cn/organizations
      
  2. 열리는 로그인 창에서 암호를 입력한 다음 로그인을 선택합니다.

    계정에 로그인 창에 암호를 입력합니다.

    참고

    PowerShell 7에서는 기본적으로 브라우저 기반 SSO(Single Sign-On)가 사용되므로 독립 실행형 대화 상자 대신 기본 웹 브라우저에서 로그인 프롬프트가 열립니다.

  3. MFA 전용: 확인 코드는 계정에 대해 구성된 응답 옵션(예: 디바이스의 문자 메시지 또는 Microsoft Authenticator 앱)에 따라 생성되고 전달됩니다.

    열리는 확인 창에서 확인 코드를 입력한 다음 확인을 선택합니다.

    계정에 로그인 창에 확인 코드를 입력합니다.

로그인 프롬프트 없이 보안 & 준수 PowerShell에 연결(무인 스크립트)

전체 지침은 Exchange Online PowerShell 및 보안 & 준수 PowerShell의 무인 스크립트에 대한 앱 전용 인증을 참조하세요.

고객 조직의 보안 & 규정 준수 PowerShell에 연결

이 섹션의 절차에는 모듈 버전 3.0.0 이상이 필요합니다.

Security & Compliance PowerShell에서 DelegatedOrganization 매개 변수와 함께 AzureADAuthorizationEndpointUri를 사용해야 합니다.

파트너 및 고객 조직에 대한 자세한 내용은 다음 문서를 참조하세요.

이 예제에서는 다음 시나리오에서 고객 조직에 연결합니다.

  • CSP 계정을 사용하여 고객 organization 연결합니다.

  • GDAP를 사용하여 고객 organization 연결합니다.

  • 고객 organization 게스트로 연결합니다.

    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 cmdlet을 로컬 Windows PowerShell 세션으로 가져오게 되고 진행률 표시줄을 통해 추적됩니다. 오류가 발생하지 않으면 정상적으로 연결된 것입니다. 연결을 간단하게 테스트하려면 Get-RetentionCompliancePolicy 등의 보안 및 규정 준수 PowerShell cmdlet을 실행하여 결과를 확인합니다.

오류가 발생하면 다음 요구 사항을 확인합니다.

  • 가장 흔한 문제는 암호를 잘못 입력한 경우입니다. 세 단계를 다시 실행하고 사용하는 사용자 이름과 암호를 주의해서 입력합니다.

  • 연결하는 데 사용하는 계정은 PowerShell에 사용하도록 설정해야 합니다. 자세한 내용은 Exchange Online PowerShell에 대한 액세스 설정 또는 해제를 참조하세요.

  • 로컬 컴퓨터와 Microsoft 365 간에 TCP 포트 80 트래픽이 열려 있어야 합니다. 이 포트는 이미 열려 있을 수도 있지만 조직에서 제한적인 인터넷 액세스 정책을 사용하는 경우에는 열려 있는지를 고려해야 합니다.

  • 보안 & 준수 PowerShell에 대한 REST 기반 연결에는 PowerShellGet 모듈이 필요합니다. 종속성에 따라 PowerShellGet 모듈에는 PackageManagement 모듈이 필요합니다. 두 모듈을 모두 설치하지 않고 연결을 시도하면 오류가 발생합니다. 예를 들어 다음 오류가 표시될 수 있습니다.

    'Update-ModuleManifest'라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다. 이름의 철자를 확인하거나 경로가 포함된 경우 경로가 올바른지 확인하고 다시 시도합니다.

    PowerShellGet 및 PackageManagement 모듈 요구 사항에 대한 자세한 내용은 Windows의 REST 기반 연결에 대한 PowerShellGet을 참조하세요.

  • 연결 요청 중에 클라이언트 IP 주소가 변경되면 연결에 실패할 수 있습니다. organization 여러 IP 주소가 있는 SNAT(원본 네트워크 주소 변환) 풀을 사용하는 경우 오류가 발생합니다. 연결 오류는 다음과 같이 표시됩니다.

    서버에서 셸을 찾을 수 없어 ShellId <ID> 가 있는 Windows 원격 셸에 대한 요청이 실패했습니다. 가능한 원인: 지정된 ShellId이 올바르지 않거나 셸이 서버에 더 이상 존재하지 않습니다. 올바른 ShellId를 제공하거나 새 셸을 만든 후 작업을 다시 시도하세요.

    이 문제를 해결하려면 다음 단계 중 하나를 수행합니다.

    • 단일 IP 주소를 포함하는 SNAT 풀을 사용합니다.
    • 보안 & 규정 준수 PowerShell 엔드포인트에 연결하기 위해 특정 IP 주소를 강제로 사용합니다.