Security & Compliance PowerShell에 연결
이 문서에는 MFA(다단계 인증)를 사용하거나 사용하지 않고 Exchange Online PowerShell 모듈을 사용하여 보안 & 준수 PowerShell에 연결하는 방법에 대한 지침이 포함되어 있습니다.
Exchange Online PowerShell 모듈은 최신 인증을 사용하여 Microsoft 365의 모든 Exchange 관련 PowerShell 환경(Exchange Online PowerShell, 보안 & 규정 준수 PowerShell 및 독립 실행형 Exchange Online Protection(EOP) PowerShell)에 연결합니다. Exchange Online PowerShell 모듈에 대한 자세한 내용은 Exchange Online PowerShell 모듈 정보를 참조하세요.
자동화를 위해 보안 & 준수 PowerShell에 연결하려면 무인 스크립트에 대한 앱 전용 인증을 참조하세요.
시작하기 전에 알아야 할 사항은 무엇인가요?
모듈 설치 및 사용에 대한 요구 사항은 Exchange Online PowerShell 모듈 설치 및 유지 관리에 설명되어 있습니다.
참고
원격 PowerShell 연결은 보안 & 규정 준수 PowerShell에서 더 이상 사용되지 않습니다. 자세한 내용은 보안 & 규정 준수 PowerShell에서 RPS(원격 PowerShell) 프로토콜 사용 중단을 참조하세요.
Exchange Online PowerShell V3 모듈의 REST API 연결에는 PowerShellGet 및 PackageManagement 모듈이 필요합니다. 자세한 내용은 Windows의 REST 기반 연결에 대한 PowerShellGet을 참조하세요.
연결한 후 액세스 권한이 있거나 없는 cmdlets 및 매개 변수는 RBAC(역할 기반 액세스 제어)에 의해 제어됩니다. 자세한 내용은 Microsoft Defender 포털의 권한 및 Microsoft Purview 규정 준수 포털 권한을 참조하세요.
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
)의 계정입니다.필요한 ConnectionUri 및 AzureADAuthorizationEndpointUri 값은 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/common
도 기본값이므로 Microsoft 365 또는 Microsoft 365 GCC 환경에서 AzureADAuthorizationEndpointUri 매개 변수를 사용할 필요가 없습니다.
- ConnectionUri: 없음. 필수 값
- Microsoft 365 GCC High:
- ConnectionUri:
https://ps.compliance.protection.office365.us/powershell-liveid/
- AzureADAuthorizationEndpointUri:
https://login.microsoftonline.us/common
- ConnectionUri:
- Microsoft 365 DoD:
- ConnectionUri:
https://l5.ps.compliance.protection.office365.us/powershell-liveid/
- AzureADAuthorizationEndpointUri:
https://login.microsoftonline.us/common
- ConnectionUri:
- 21Vianet에서 운영하는 Office 365:
- ConnectionUri:
https://ps.compliance.protection.partner.outlook.cn/powershell-liveid
- AzureADAuthorizationEndpointUri:
https://login.chinacloudapi.cn/common
- ConnectionUri:
- Microsoft 365 또는 Microsoft 365 GCC:
프록시 서버 뒤에 있는 경우 연결 명령에서 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에 연결
다음 예제는 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/common
이 예제는 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/common
이 예는 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/common
로그인 창이 열리면 암호를 입력하고 로그인을 클릭합니다.
참고
PowerShell 7에서는 기본적으로 브라우저 기반 SSO(Single Sign-On)가 사용되므로 독립 실행형 대화 상자 대신 기본 웹 브라우저에서 로그인 프롬프트가 열립니다.
MFA만 해당: 계정에 대해 구성된 응답 옵션(예: 장치의 텍스트 메시지 또는 Microsoft Authenticator 앱)에 따라 확인 코드가 생성되어 제공됩니다.
열리는 확인 창에서 확인 코드를 입력한 다음 확인을 클릭합니다.
로그인 프롬프트 없이 보안 & 준수 PowerShell에 연결(무인 스크립트)
전체 지침은 Exchange Online PowerShell 및 보안 & 준수 PowerShell의 무인 스크립트에 대한 앱 전용 인증을 참조하세요.
고객 조직의 보안 & 규정 준수 PowerShell에 연결
이 섹션의 절차에는 모듈 버전 3.0.0 이상이 필요합니다.
Security & Compliance PowerShell에서 DelegatedOrganization 매개 변수와 함께 AzureADAuthorizationEndpointUri를 사용해야 합니다.
파트너 및 고객 조직에 대한 자세한 내용은 다음 topics 참조하세요.
이 예제에서는 다음 시나리오에서 고객 조직에 연결합니다.
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 모듈 및 종속성에 따라 PackageManagement 모듈이 필요하므로 설치하지 않고 연결하려고 하면 오류가 발생합니다. 예를 들어 다음 오류가 표시될 수 있습니다.
'Update-ModuleManifest'라는 용어는 cmdlet, 함수, 스크립트 파일 또는 작동 가능한 프로그램의 이름으로 인식되지 않습니다. 이름의 철자를 확인하거나 경로가 포함된 경우 경로가 올바른지 확인하고 다시 시도합니다.
PowerShellGet 및 PackageManagement 모듈 요구 사항에 대한 자세한 내용은 Windows의 REST 기반 연결에 대한 PowerShellGet을 참조하세요.
연결 요청 중에 클라이언트 IP 주소가 변경되면 연결에 실패할 수 있습니다. 조직에서 여러 IP 주소를 포함하는 원본 SNAT(Source Network Address Translation) 풀을 사용하는 경우 이 문제가 발생할 수 있습니다. 연결 오류는 다음과 같이 표시됩니다.
서버에서 셸을 찾을 수 없어 ShellId <ID> 가 있는 Windows 원격 셸에 대한 요청이 실패했습니다. 가능한 원인: 지정된 ShellId이 올바르지 않거나 셸이 서버에 더 이상 존재하지 않습니다. 올바른 ShellId를 제공하거나 새 셸을 만든 후 작업을 다시 시도하세요.
이 문제를 해결하려면 단일 IP 주소를 포함하는 SNAT 풀을 사용하거나 보안 및 규정 준수 PowerShell 끝점에 연결하는 데 특정 IP 주소를 사용합니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기