Exchange Online PowerShell 모듈 정보

Exchange Online PowerShell 모듈은 최신 인증을 사용하며 Microsoft 365의 모든 Exchange 관련 PowerShell 환경(Exchange Online PowerShell, 보안 & 규정 준수 PowerShell 및 EOP(독립 실행형 Exchange Online Protection)에 연결하기 위해 MFA(다단계 인증)를 사용하거나 사용하지 않고 작동합니다. Powershell.

모듈을 사용하는 연결 지침은 다음 문서를 참조하세요.

이 문서의 나머지 부분에서는 모듈의 작동 방식, 모듈의 설치 및 유지 관리 방법, 모듈에서 사용할 수 있는 최적화된 Exchange Online cmdlet에 대해 설명합니다.

버전 3.0.0 이상(2022)은 Exchange Online PowerShell V3 모듈(EXO V3 모듈로 축약됨)으로 알려져 있습니다. 버전 2.0.5 이하(2021)는 Exchange Online PowerShell V2 모듈(EXO V2 모듈로 축약됨)으로 알려져 있습니다.

EXO V3 모듈의 REST API 연결

Exchange Online PowerShell 및 보안 & 준수 PowerShell에서 사용 가능한 모든 cmdlet은 EXO V3 모듈의 버전을 기반으로 REST API에서 지원됩니다.

  • Exchange Online PowerShell: v3.0.0 이상.
  • 보안 & 규정 준수 PowerShell: v3.2.0 이상.

Exchange Online PowerShell 및 보안 & 규정 준수 PowerShell에서 REST API 연결은 기본적으로 사용되며 PowerShellGet 및 PackageManagement 모듈이 필요합니다. 자세한 내용은 Windows의 REST 기반 연결에 대한 PowerShellGet을 참조하세요.

REST API cmdlet은 기록 항목에 비해 다음과 같은 이점이 있습니다.

  • 보안 강화: REST API cmdlet은 최신 인증을 기본적으로 지원하며 원격 PowerShell 세션에 의존하지 않으므로 클라이언트 컴퓨터의 PowerShell에는 WinRM의 기본 인증이 필요하지 않습니다.
  • 더 안정적: REST API cmdlet은 기본 제공 재시도를 통해 일시적인 오류를 처리하므로 오류 또는 지연이 최소화됩니다. 예시:
    • 네트워크 지연으로 인한 오류입니다.
    • 완료하는 데 오랜 시간이 걸리는 대규모 쿼리로 인해 지연됩니다.
  • 성능 향상: 연결은 PowerShell Runspace를 설정하지 않도록 방지합니다.

REST API cmdlet의 이점은 다음 표에 설명되어 있습니다.

  원격 PowerShell cmdlet Get-EXO* cmdlet REST API cmdlet
보안 최소 보안 매우 안전한 매우 안전한
성능 낮은 성능 고성능 중간 성능
안정성 가장 신뢰할 수 없는 경우 매우 신뢰할 수 있는 매우 신뢰할 수 있는
기능 사용 가능한 모든 매개 변수 및 출력 속성 사용 가능한 제한된 매개 변수 및 출력 속성 사용 가능한 모든 매개 변수 및 출력 속성

REST API cmdlet은 동일한 cmdlet 이름을 가지며 원격 PowerShell과 동일하게 작동하므로 스크립트를 업데이트할 필요가 없습니다.

Invoke-Command cmdlet은 REST API 연결에서 작동하지 않습니다. 대안은 REST API 연결의 Invoke-Command 시나리오에 대한 해결 방법을 참조하세요.

기본 인증(원격 PowerShell) 연결은 Exchange Online PowerShell 및 보안 & 준수 PowerShell에서 더 이상 사용되지 않습니다. 자세한 내용은 여기와 여기 를 참조 하세요.

Exchange Online PowerShell의 몇 가지 REST API cmdlet이 실험적 UseCustomRouting 스위치로 업데이트되었습니다. 이 스위치는 명령을 필요한 사서함 서버로 직접 라우팅하고 전체 성능을 향상시킬 수 있습니다.

  • UseCustomRouting 스위치를 사용하는 경우 편지함 ID에 다음 값만 사용할 수 있습니다.

    • UPN(사용자 계정 이름)
    • 전자 메일 주소
    • 사서함 GUID
  • UseCustomRouting 스위치는 Exchange Online PowerShell의 다음 REST API cmdlet에서만 사용할 수 있습니다.

    • Get-Clutter
    • Get-FocusedInbox
    • Get-InboxRule
    • Get-MailboxAutoReplyConfiguration
    • Get-MailboxCalendarFolder
    • Get-MailboxFolderPermission
    • Get-MailboxFolderStatistics
    • Get-MailboxMessageConfiguration
    • Get-MailboxPermission
    • Get-MailboxRegionalConfiguration
    • Get-MailboxStatistics
    • Get-MobileDeviceStatistics
    • Get-UserPhoto
    • Remove-CalendarEvents
    • Set-Clutter
    • Set-FocusedInbox
    • Set-MailboxRegionalConfiguration
    • Set-UserPhoto

    UseCustomRouting 스위치를 실험적으로 사용하고 발생하는 문제를 보고하세요.

  • Get-ConnectionInformation cmdlet을 사용하여 PowerShell 및 보안 & 준수 PowerShell을 Exchange Online REST 기반 연결에 대한 정보를 가져옵니다. 이 cmdlet은 Windows PowerShell Get-PSSession cmdlet이 REST 기반 연결에 대한 정보를 반환하지 않기 때문에 필요합니다.

    Get-ConnectionInformation을 사용할 수 있는 시나리오는 다음 표에 설명되어 있습니다.

    시나리오 예상 출력
    Connect-ExchangeOnline 또는 Connect-IPPSSession 명령 전에 를 실행합니다. 아무 것도 반환하지 않습니다.
    REST API 모드에서 연결하는 Connect-ExchangeOnline 또는 Connect-IPPSSession 명령 후에 실행합니다. 하나의 연결 정보 개체를 반환합니다.
    여러 REST 기반 Connect-ExchangeOnline 또는 Connect-IPPSSession 명령을 실행합니다. 연결 정보 개체의 컬렉션을 반환합니다.
  • Connect-ExchangeOnline cmdlet에서 SkipLoadingFormatData 스위치를 사용하여 형식 데이터를 로드하지 않고 Connect-ExchangeOnline 명령을 더 빠르게 실행합니다.

  • REST API에서 지원되는 Cmdlet의 시간 제한은 15분이며 대량 작업에 영향을 줄 수 있습니다. 예를 들어 메일 그룹의 10000 멤버를 업데이트하는 다음 Update-DistributionGroupMember 명령은 시간이 초과될 수 있습니다.

    $Members = @("member1","member2",...,"member10000")
    
    Update-DistributionGroupMember -Identity DG01 -Members $Members
    

    대신 Update-DistributionGroupMember 명령을 사용하여 더 적은 수의 멤버를 업데이트한 다음 Add-DistributionGroupMember 명령을 사용하여 나머지 멤버를 개별적으로 추가합니다. 예시:

    Update-DistributionGroupMember -Identity DG01 -Members $Members[0..4999]
    
    $Remaining = $Members[-5000..-1]
    
    foreach ($Member in $Remaining)
    
    {
       Add-DistributionGroupMember -Identity DG01 -Member $Member
    }
    

EXO V3 모듈의 새로운 기능과 관련한 자세한 내용은 이 문서의 뒷부분에 있는 릴리스 정보 섹션을 참조하세요.

Exchange Online PowerShell 모듈에 대한 버그 및 문제 보고

참고

모듈의 GA(일반 공급) 버전의 경우 발생하는 문제에 대한 지원 티켓을 엽니다. 모듈의 미리 보기 버전의 경우 이 섹션에 설명된 대로 이메일 주소를 사용합니다. 모듈의 GA 및 미리 보기 버전 모두에 대한 피드백 및 제안에 이메일 주소를 사용할 수도 있습니다.

exocmdletpreview[at]service[dot]microsoft[dot]com에서 문제를 보고할 때는 로그 파일을 전자 메일 메시지에 포함해야 합니다. 로그 파일을 생성하려면 로그 파일을 <> 저장할 경로를 원하는 출력 폴더로 바꾸고 다음 명령을 실행합니다.

Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path to store log file> -LogLevel All

참고

단일 PowerShell 세션 또는 스크립트에서 Connect-ExchangeOnlineDisconnect-ExchangeOnline cmdlet을 자주 사용하면 메모리 누수가 발생할 수 있습니다. 이 문제를 방지하는 가장 좋은 방법은 Connect-ExchangeOnline cmdlet에서 CommandName 매개 변수를 사용하여 세션에서 사용되는 cmdlet을 제한하는 것입니다.

Exchange Online PowerShell 모듈의 Cmdlet

모듈의 모든 버전에는 대량 데이터 검색 시나리오(수천 및 수천 개의 개체)의 속도에 최적화된 Exchange Online PowerShell용 9개의 전용 Get-EXO* cmdlet이 포함되어 있습니다. 모듈에서만 사용할 수 있는 향상된 Exchange Online PowerShell cmdlet은 다음 표에 나와 있습니다.

EXO 모듈 cmdlet 이전의 관련 cmdlet
Get-EXOMailbox Get-Mailbox
Get-EXORecipient Get-Recipient
Get-EXOCasMailbox Get-CASMailbox
Get-EXOMailboxPermission Get-MailboxPermission
Get-EXORecipientPermission Get-RecipientPermission
Get-EXOMailboxStatistics Get-MailboxStatistics
Get-EXOMailboxFolderStatistics Get-MailboxFolderStatistics
Get-EXOMailboxFolderPermission Get-MailboxFolderPermission
Get-EXOMobileDeviceStatistics Get-MobileDeviceStatistics

참고

동일한 창에서 Exchange Online PowerShell에 대한 여러 연결을 여는 경우 Get-EXO* cmdlet은 항상 마지막(가장 최근) Exchange Online PowerShell 연결과 연결됩니다. 다음 명령을 실행하여 Get-EXO* cmdlet이 실행되는 Get-ConnectionInformation | Where-Object {$_.ConnectionUsedForInbuiltCmdlets -eq $true}REST API 세션을 찾습니다.

모듈의 연결 관련 cmdlet은 다음 표에 나와 있습니다.

EXO 모듈 cmdlet 이전의 관련 cmdlet 설명
Connect-ExchangeOnline 모듈의 V1에서 Connect-EXOPSSession
또는
New-PSSession
Connect-IPPSSession 모듈의 V1에서 Connect-IPPSSession
Disconnect-ExchangeOnline Remove-PSSession
Get-ConnectionInformation Get-PSSession v3.0.0 이상에서 사용할 수 있습니다.

모듈에 있는 기타 Exchange Online cmdlet은 다음 표에 나와 있습니다.

Cmdlet 설명
Get-DefaultTenantBriefingConfig v3.2.0 이상에서 사용할 수 있습니다.
Set-DefaultTenantBriefingConfig v3.2.0 이상에서 사용할 수 있습니다.
Get-DefaultTenantMyAnalyticsFeatureConfig v3.2.0 이상에서 사용할 수 있습니다.
Set-DefaultTenantMyAnalyticsFeatureConfig v3.2.0 이상에서 사용할 수 있습니다.
Get-MyAnalyticsFeatureConfig v2.0.4 이상에서 사용할 수 있습니다.
Set-MyAnalyticsFeatureConfig v2.0.4 이상에서 사용할 수 있습니다.
Get-UserBriefingConfig Get-MyAnalyticsFeatureConfig로 대체됩니다.
Set-UserBriefingConfig Set-MyAnalyticsFeatureConfig로 대체됩니다.
Get-VivaInsightsSettings v2.0.5 이상에서 사용할 수 있습니다.
Set-VivaInsightsSettings v2.0.5 이상에서 사용할 수 있습니다.
Get-VivaModuleFeature v3.2.0 이상에서 사용할 수 있습니다.
Get-VivaModuleFeatureEnablement v3.2.0 이상에서 사용할 수 있습니다.
Add-VivaModuleFeaturePolicy v3.2.0 이상에서 사용할 수 있습니다.
Get-VivaModuleFeaturePolicy v3.2.0 이상에서 사용할 수 있습니다.
Remove-VivaModuleFeaturePolicy v3.2.0 이상에서 사용할 수 있습니다.
Update-VivaModuleFeaturePolicy v3.2.0 이상에서 사용할 수 있습니다.

Exchange Online PowerShell 모듈 설치 및 유지 관리

의 PowerShell 갤러리 https://www.powershellgallery.com/packages/ExchangeOnlineManagement/에서 모듈을 다운로드합니다.

이 섹션의 절차에서는 모듈을 설치, 업데이트 및 제거하는 방법을 설명합니다.

Exchange Online PowerShell 모듈에 지원되는 운영 체제

최신 버전의 모듈은 Windows, Linux 및 Apple macOS의 PowerShell 7에서 공식적으로 지원됩니다.

특히 버전 2.0.4 이상은 PowerShell 7.0.3 이상에서 지원됩니다.

PowerShell 7에 대한 자세한 내용은 PowerShell 7.0를 참조하시기 바랍니다.

Apple macOS

모듈은 다음 버전의 macOS에서 지원됩니다.

  • macOS 11 Big Sur 이상
  • macOS 10.15 Catalina
  • macOS 10.14 Mojave

macOS에서 PowerShell 7을 설치하는 방법에 대한 지침은 macOS에 PowerShell 설치를 참조하세요.

참고

설치 게시물에서 설명한 대로 WSMan에 필요한 OpenSSL을 설치해야 합니다.

PowerShell 7 및 OpenSSL을 설치한 후 다음 단계를 수행합니다.

  1. PowerShell을 수퍼 사용자로 실행: sudo pwsh

  2. PowerShell 수퍼 사용자 세션에서 다음 명령을 실행합니다.

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    메시지가 표시되면 PSGallery를 cmdlet의 원본으로 수락합니다.

이제 일반 PowerShell 필수 구성 요소를 수행하고 Exchange Online PowerShell 모듈을 설치할 수 있습니다.

Linux

이 모듈은 Linux의 다음 배포판에서 공식적으로 지원됩니다.

  • Ubuntu 18.04 LTS
  • Ubuntu 20.04 LTS

Linux의 다른 배포판에서 모듈을 사용하는 데 문제가 있는 경우 문제를 보고합니다.

Linux에서 PowerShell 7을 설치하는 방법에 대한 지침은 Linux에 PowerShell 설치를 참조하세요.

PowerShell 7을 설치한 후 다음 단계를 수행합니다.

  1. PowerShell을 수퍼 사용자로 실행: sudo pwsh

  2. PowerShell 수퍼 사용자 세션에서 다음 명령을 실행합니다.

    Install-Module -Name PSWSMan
    
    Install-WSMan
    

    메시지가 표시되면 PSGallery를 cmdlet의 원본으로 수락합니다.

이제 일반 PowerShell 필수 구성 요소를 수행하고 Exchange Online PowerShell 모듈을 설치할 수 있습니다.

참고

프록시 서버 뒤에 있는 네트워크에서 Exchange Online PowerShell에 연결하는 경우 EXO V2 모듈(버전 v2.0.5 이하)은 Linux에서 작동하지 않습니다. 프록시 서버 뒤에 있는 네트워크에서 연결하려면 Linux에서 EXO V3 모듈(v3.0.0 이상)을 사용해야 합니다.

Windows

모듈의 모든 버전은 Windows PowerShell 5.1에서 지원됩니다.

Windows의 PowerShell 7에는 버전 2.0.4 이상이 필요합니다.

모듈 버전 2.0.5 이상에서는 Microsoft .NET Framework 4.7.2 이상이 연결되어야 합니다. 그렇지 않으면 오류가 발생합니다 System.Runtime.InteropServices.OSPlatform . 이 요구 사항은 현재 버전의 Windows에서 문제가 되어서는 안 됩니다. .NET Framework 4.7.2를 지원하는 Windows 버전에 대한 자세한 내용은 이 문서를 참조하세요.

이전 버전의 Windows에서 Windows PowerShell 요구 사항 및 모듈 지원은 다음 목록에 설명되어 있습니다.

  • Windows 8.1

  • R2 Windows Server 2012 또는 Windows Server 2012

  • Windows 7 SP1(서비스 팩 1)² ²

  • Windows Server 2008 R2 SP1² 1

  • 이 버전의 Windows에서 PowerShell 7을 사용하려면 Windows 10 CRT(유니버설 C 런타임)가 필요합니다.

  • ² 이 버전의 Windows는 지원이 종료되었으며 이제 Azure 가상 머신에서만 지원됩니다.

  • 1 이 버전의 Windows는 v2.0.3 또는 이전 버전의 모듈만 지원합니다.

  • 이 버전의 Windows에서 Windows PowerShell 5.1에는 .NET Framework 4.5 이상 및 Windows Management Framework 5.1이 필요합니다. 자세한 내용은 Windows Management Framework 5.1을 참조하세요.

Exchange Online PowerShell 모듈의 필수 구성 요소

PowerShell 실행 정책을 RemoteSigned로 설정

참고

이 섹션의 설정은 모든 운영 체제의 모든 PowerShell 버전에 적용됩니다.

PowerShell은 스크립트를 실행하도록 구성되어야 하며 기본적으로 그렇게 구성되어 있지 않습니다. 연결하려고 하면 다음 오류가 표시됩니다.

이 시스템에서 스크립트 실행이 비활성화되어 파일을 로드할 수 없습니다. 파일 서명에 유효한 인증서를 제공하세요.

인터넷에서 다운로드하는 모든 PowerShell 스크립트를 신뢰할 수 있는 게시자가 서명하도록 하려면 관리자 권한 PowerShell 창(관리자 권한으로 실행을 선택하면 열리는 PowerShell 창)에서 다음 명령을 실행합니다.

Set-ExecutionPolicy RemoteSigned

실행 정책에 대한 자세한 내용은 실행 정책을(를) 참조하시기 바랍니다.

WinRM에서 기본 인증 켜기

참고

REST 기반 연결은 이 섹션에 설명된 대로 WinRM에서 기본 인증이 필요하지 않습니다. 이 문서의 앞부분에서 설명한 대로 Exchange Online PowerShell 및 보안 & 준수 PowerShell에 대한 기본 인증(원격 PowerShell) 액세스는 더 이상 사용되지 않습니다. 이 섹션의 정보는 기록 목적으로 유지 관리됩니다.

REST API를 사용하지 않는 원격 PowerShell 연결의 경우(지금은 불가능) WinRM에서 기본 인증을 허용해야 합니다. 사용자 이름과 암호 조합을 보내지 않습니다. WinRM의 클라이언트 쪽 구현은 OAuth를 지원하지 않으므로 세션의 OAuth 토큰을 보내려면 기본 인증 헤더 가 필요합니다.

기본 인증이 WinRM에 사용 설정되어 있는지 확인하려면 명령 프롬프트 또는 Windows PowerShell에서 다음 명령을 실행합니다.

참고

다음 명령을 사용하려면 WinRM을 사용하도록 설정해야 합니다. WinRM을 사용하도록 설정하려면 명령을 실행합니다 winrm quickconfig.

winrm get winrm/config/client/auth

Basic = true 값이 표시되지 않으면 다음 명령 중 하나를 실행하여 WinRM에 대한 기본 인증을 사용해야 합니다.

  • 명령 프롬프트에서:

    winrm set winrm/config/client/auth @{Basic="true"}
    
  • Windows PowerShell:

    winrm set winrm/config/client/auth '@{Basic="true"}'
    
  • Windows PowerShell에서 레지스트리 수정:

    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WinRM\Client' -Name 'AllowBasic' -Type DWord -Value '1'
    

WinRM에 대한 기본 인증을 사용하지 않도록 설정하면 기본 인증(원격 PowerShell) 연결을 사용하여 연결하려고 할 때 다음 오류 중 하나가 발생합니다.

WinRM 클라이언트에서 요청을 처리할 수 없습니다. 기본 인증은 현재 클라이언트 구성에서 사용하지 않도록 설정되어 있습니다. 클라이언트 구성을 변경하고 요청을 다시 시도하세요.

OAuth를 사용하여 Powershell 세션 만들기에 실패했습니다.

Windows의 REST 기반 연결용 PowerShellGet

Windows의 REST 기반 연결에는 PowerShellGet 모듈과 종속성에 따라 PackageManagement 모듈이 필요합니다. 이러한 모듈에 대한 고려 사항은 PowerShell 7보다 PowerShell 5.1에 더 많지만 모든 버전의 PowerShell은 최신 버전의 모듈을 설치하는 것이 좋습니다. 설치 및 업데이트 지침은 Windows에 PowerShellGet 설치를 참조하세요.

참고

PackageManagement 또는 PowerShellGet 모듈의 베타 버전으로 인해 연결 문제가 발생할 수 있습니다. 연결 문제가 있는 경우 명령을 Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions실행하여 설치한 모듈의 베타 버전이 없는지 확인합니다.

REST 기반 연결을 만들려고 할 때 PowerShellGet이 설치되어 있지 않으면 연결을 시도할 때 다음 오류가 발생합니다.

cmdlet Update-Manifest 찾을 수 없습니다.

Exchange Online PowerShell 모듈 설치

모듈을 처음으로 설치하려면 다음 단계를 완료합니다.

  1. PowerShellGet 설치에 설명된 대로 PowerShellGet 모듈을 설치하거나 업데이트합니다.

  2. Windows PowerShell 창을 닫았다가 다시 엽니다.

  3. 이제 Install-Module cmdlet을 사용하여 PowerShell 갤러리 모듈을 설치할 수 있습니다. 일반적으로 모듈의 최신 공용 버전을 원하지만 사용 가능한 경우 미리 보기 버전을 설치할 수도 있습니다.

    • 최신 퍼블릭 버전의 모듈을 설치하려면 다음 명령 중 하나를 실행합니다.

      • 권한 상승된 PowerShell 창(모든 사용자):

        Install-Module -Name ExchangeOnlineManagement
        
      • 현재 사용자 계정에만 해당:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • 사용 가능한 미리 보기 버전의 모듈을 보려면 다음 명령을 실행합니다.

      Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
      
    • 사용 가능한 최신 미리 보기 버전의 모듈을 설치하려면 다음 명령 중 하나를 실행합니다.

      • 권한 상승된 PowerShell 창(모든 사용자):

        Install-Module -Name ExchangeOnlineManagement -AllowPrerelease
        
      • 현재 사용자 계정에만 해당:

        Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
        
    • 모듈<의 특정 미리 보기 버전을 설치하려면 PreviewVersion>을 필요한 값으로 바꾸고 다음 명령 중 하나를 실행합니다.

      • 권한 상승된 PowerShell 창(모든 사용자):

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
        
      • 현재 사용자 계정에만 해당:

        Install-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease -Scope CurrentUser
        

    완료되면 라이선스 계약에 동의하려면 Y를 입력합니다.

자세한 구문 및 매개 변수 정보는 설치-모듈을(를) 참조합니다.

Exchange Online PowerShell 모듈 업데이트

모듈이 컴퓨터에 이미 설치된 경우 이 섹션의 절차를 사용하여 모듈을 업데이트할 수 있습니다.

  1. 현재 설치되어 있고 모듈이 설치된 모듈의 버전을 보려면 다음 명령을 실행합니다.

    Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
    

    모듈이 C:\Program Files\WindowsPowerShell\Modules에 설치된 경우 모든 사용자에 대해 설치됩니다. 모듈이 Documents 폴더에 설치된 경우 현재 사용자 계정에 대해서만 설치됩니다.

  2. Update-Module cmdlet을 사용하여 PowerShell 갤러리 모듈을 업데이트할 수 있습니다. 일반적으로 모듈의 최신 공용 버전을 원하지만 사용 가능한 경우 미리 보기 버전으로 업그레이드할 수도 있습니다.

    • 모듈의 최신 공용 버전으로 업그레이드하려면 모듈을 처음 설치한 방법(모든 사용자 및 현재 사용자 계정에만 해당)에 따라 다음 명령 중 하나를 실행합니다.

      • 권한 상승된 PowerShell 창(모든 사용자):

        Update-Module -Name ExchangeOnlineManagement
        
      • 현재 사용자 계정에만 해당:

        Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser
        
    • 모듈의 미리 보기 버전으로 업그레이드하려면 사용 가능한 최신 미리 보기 버전으로 업그레이드하거나 RequiredVersion 매개 변수를 사용하여 특정 미리 보기 버전으로 업그레이드할 수 있습니다.

      • 사용 가능한 미리 보기 버전의 모듈을 보려면 다음 명령을 실행합니다.

        Find-Module ExchangeOnlineManagement -AllVersions -AllowPrerelease
        
      • 사용 가능한 최신 미리 보기 버전의 모듈로 업그레이드하려면 다음 명령 중 하나를 실행합니다.

        • 권한 상승된 PowerShell 창(모든 사용자):

          Update-Module -Name ExchangeOnlineManagement -AllowPrerelease
          
        • 현재 사용자 계정에만 해당:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -AllowPrerelease
          
      • 모듈<의 특정 미리 보기 버전으로 업그레이드하려면 PreviewVersion>을 필요한 값으로 바꾸고 다음 명령 중 하나를 실행합니다.

        • 권한 상승된 PowerShell 창(모든 사용자):

          Update-Module -Name ExchangeOnlineManagement -RequiredVersion <PreviewVersion> -AllowPrerelease
          
        • 현재 사용자 계정에만 해당:

          Update-Module -Name ExchangeOnlineManagement -Scope CurrentUser -RequiredVersion <PreviewVersion> -AllowPrerelease
          

    완료되면 라이선스 계약에 동의하려면 Y를 입력합니다.

  3. 업데이트가 성공했는지 확인하려면 다음 명령을 실행하여 설치된 모듈의 버전 정보를 확인합니다.

    Import-Module ExchangeOnlineManagement; Get-Module ExchangeOnlineManagement
    

자세한 구문 및 매개 변수 정보는 업데이트-모듈을(를) 참조합니다.

Exchange Online PowerShell 모듈 설치 문제 해결

  • 다음 오류 중 하나가 나타납니다.

    PowerShellGetFormatVersion 'version>'과 함께 지정된 모듈 '<ExchangeOnlineManagement'는 현재 버전의 PowerShellGet에서 지원되지 않습니다. 이 모듈 'ExchangeOnlineManagement'를 설치하려면 최신 버전의 PowerShellGet 모듈을 설치하세요.

    경고: URI '에서 다운로드할 수 없습니다.https://go.microsoft.com/fwlink/?LinkID=627338& clcid=0x409'을 ''으로 설정합니다.

    경고: 사용 가능한 공급자 목록을 다운로드할 수 없습니다. 인터넷 연결을 확인하세요.

    PowerShellGet 설치에 설명된 대로 PowerShellGet 모듈의 설치를 최신 버전으로 업데이트합니다. ExchangeOnlineManagement 모듈을 다시 업데이트하기 전에 PowerShell 창을 닫았다가 다시 열어야 합니다.

  • 2020년 4월 현재 PowerShell Gallery는 TLS 1.2 이상을 사용하는 연결만 지원합니다. 자세한 내용은 PowerShell 갤러리 TLS 지원을 참조하세요.

    Microsoft .NET Framework에서 현재 설정을 확인하려면 Windows PowerShell에서 다음 명령을 실행합니다.

    [Net.ServicePointManager]::SecurityProtocol
    

    PowerShell 갤러리 TLS 지원 문서에 설명된 대로 보안 프로토콜을 일시적으로 TLS 1.2로 변경하여 PowerShellGet 또는 ExchangeOnlineManagement 모듈을 설치하려면 모듈을 설치하기 전에 Windows PowerShell에서 다음 명령을 실행합니다.

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    

    Microsoft .NET Framework 버전 4.x 이상에서 강력한 암호화를 영구적으로 사용하려면 Windows 아키텍처에 따라 다음 명령 중 하나를 실행하세요.

    • x64:

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      
    • x86:

      Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Type DWord -Value '1'
      

    자세한 내용은 SchUseStrongCrypto를 참조하세요.

  • 다음과 같은 오류가 나타날 수 있습니다.

    지정된 검색 조건 및 모듈 이름 'ExchangeOnlineManagement'와 일치하는 항목이 없습니다. 사용 가능한 등록된 모듈 리포지토리를 모두 보려면 Get-PSRepository을(를) 실행해 보세요.

    PowerShell 모듈의 기본 리포지토리는 PSGallery로 설정되지 않습니다. 이 오류를 해결하려면 다음 명령을 실행합니다.

    Register-PSRepository -Default
    

Exchange Online PowerShell 모듈 제거

현재 설치되어 있고 모듈이 설치된 모듈의 버전을 보려면 다음 명령을 실행합니다.

Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation

모듈이 C:\Program Files\WindowsPowerShell\Modules에 설치된 경우 모든 사용자에 대해 설치되었습니다. 모듈이 Documents 폴더에 설치된 경우 현재 사용자 계정에 대해서만 설치되었습니다.

모듈을 제거하려면 모듈을 처음 설치한 방법(모든 사용자 및 현재 사용자 계정에만 해당)에 따라 다음 환경 중 하나에서 다음 명령을 실행합니다.

  • 관리자 권한 PowerShell 창에서(모든 사용자)

  • 일반 PowerShell 창에서(현재 사용자 계정에만 해당)

    Uninstall-Module -Name ExchangeOnlineManagement
    

자세한 구문 및 매개 변수 정보는 설치 취소-모듈을(를) 참조합니다.

Exchange Online PowerShell 모듈의 속성 및 속성 집합

기존 Exchange Online cmdlet은 종종 비어 있거나 많은 시나리오에 관심이 없는 많은 속성을 포함하여 출력에서 가능한 모든 개체 속성을 반환합니다. 이 동작은 성능 저하를 유발합니다(서버 계산 및 네트워크 부하 추가). cmdlet 출력에 전체 속성이 필요한 경우는 거의 없습니다(있는 경우).

모듈의 Get-EXO* cmdlet에는 범주화된 출력 속성이 있습니다. 모든 속성에 동일한 중요성을 부여하고 모든 시나리오에서 이를 반환하는 대신 특정 관련 속성을 속성 집합으로 분류합니다. 간단히 말해서 이러한 속성 집합은 cmdlet에서 두 개 이상의 관련 속성으로 구성된 버킷을 말합니다.

가장 크고 가장 자주 사용되는 Get-EXO* cmdlet은 속성 집합을 사용합니다.

이러한 cmdlet에서 속성 집합은 다음 매개 변수로 제어됩니다.

PropertySetsProperties 매개 변수를 동일한 명령에서 함께 사용할 수 있습니다.

또한 cmdlet 출력에 필요한 최소 속성 집합(예: ID 속성)이 포함된 최소 속성 집합도 포함되었습니다. 최소 속성 집합의 속성은 Exchange Online PowerShell 모듈 cmdlet의 속성 집합에도 설명되어 있습니다.

  • PropertySets 또는 Properties 매개 변수를 사용하지 않는 경우에는 최소 속성 집합의 속성을 자동으로 가져옵니다.
  • PropertySets 또는 Properties 매개 변수를 사용하면 지정된 속성 최소 속성 집합의 속성이 나타납니다.

어느 쪽이든 cmdlet 출력에는 훨씬 적은 수의 속성이 포함되어 있으며 해당 결과를 반환하는 데 걸리는 시간이 훨씬 빠릅니다.

예를 들어 Exchange Online PowerShell에 연결한 후 다음 예에서는 처음 10개의 편지함에 대해 설정된 최소 속성의 속성만 반환합니다.

Get-EXOMailbox -ResultSize 10

반대로 동일한 Get-Mailbox 명령의 출력은 처음 10개의 편지함 각각에 대해 230개 이상의 속성을 반환합니다.

참고

PropertySets 매개 변수에서 All 값을 사용할 수 있지만 명령 속도가 느려지고 신뢰성이 저하되기 때문에 이 값을 사용하여 모든 속성을 검색할 수 없습니다. 항상 PropertySetsProperties 매개 변수를 사용하여 시나리오에 필요한 최소 속성 수를 검색합니다.

모듈의 필터링에 대한 자세한 내용은 Exchange Online PowerShell 모듈의 필터를 참조하세요.

릴리스 정보

달리 명시되지 않는 한, Exchange Online PowerShell 모듈의 현재 릴리스에는 이전 릴리스의 모든 기능이 포함되어 있습니다.

현재 릴리스

버전 3.4.0

  • Connect-ExchangeOnline, Get-EXORecipientPermissionGet-EXOMailboxFolderPermission의 버그 수정
  • Connect-ExchangeOnline의 THe SigningCertificate 매개 변수는 이제 CLM(제한된 언어 모드)을 지원합니다.

이전 릴리스

버전 3.3.0

  • Connect-ExchangeOnlineSkipLoadingCmdletHelp 매개 변수로 cmdlet 도움말 파일 로드 건너뛰기를 지원합니다.
  • 전역 변수 EXO_LastExecutionStatus 는 실행된 마지막 cmdlet의 상태 검사 사용할 수 있습니다.
  • Connect-ExchangeOnlineConnect-IPPSSession의 버그 수정
  • Add-VivaModuleFeaturePolicyUpdate-VivaModuleFeaturePolicyIsUserControlEnabled 매개 변수는 Viva 기능 액세스 관리에 온보딩된 기능에 대한 정책별 사용자 제어 사용을 지원합니다.

버전 3.2.0

  • 새 cmdlet:
    • Get-DefaultTenantBriefingConfigSet-DefaultTenantBriefingConfig.
    • Get-DefaultTenantMyAnalyticsFeatureConfigSet-DefaultTenantMyAnalyticsFeatureConfig.
    • Get-VivaModuleFeature, Get-VivaModuleFeatureEnablement, Add-VivaModuleFeaturePolicy, Get-VivaModuleFeaturePolicy, Remove-VivaModuleFeaturePolicyUpdate-VivaModuleFeaturePolicy.
  • 보안 & 규정 준수 센터 PowerShell에 대한 REST API 연결 지원.
  • Get-ConnectionInformationDisconnect-ExchangeOnlineConnectionId 매개 변수:
    • 특정 REST API 연결에 대한 연결 정보를 가져옵니다.
    • REST API 연결에 대한 선택적 연결 끊기.
  • Connect-ExchangeOnlineSigningCertificate 매개 변수를 사용하면 서식 파일(*)에 서명할 수 있습니다. Connect-ExchangeOnline이 모든 PowerShell 실행 정책에서 사용할 클라이언트 인증서를 사용하여 만드는 임시 모듈의 Format.ps1xml) 또는 스크립트 모듈 파일(.psm1)입니다.
  • Connect-ExchangeOnline의 버그 수정

버전 3.1.0

  • Connect-ExchangeOnline에서 사용할 수 있는 AccessToken 매개 변수입니다.
  • Connect-ExchangeOnlineGet-ConnectionInformation의 버그 수정
  • CertificateThumbprint를 사용하여 보안 & 규정 준수 PowerShell에 연결하기 위한 Connect-IPPSSession의 버그 수정

버전 3.0.0(v2.0.6-PreviewX로 알려진 미리 보기 버전)

  • EXO V3 모듈 섹션의 REST API 연결에 이미 설명된 기능:
    • 보안 & 규정 준수 PowerShell(버전 2.0.6-Preview5 이상)에 대한 인증서 기반 인증입니다.
    • REST 기반 연결에 대한 Get-ConnectionInformation cmdlet(버전 2.0.6-Preview7 이상)입니다.
    • REST 기반 연결(버전 2.0.6-Preview8 이상)에 대한 Connect-ExchangeOnline cmdlet의 SkipLoadingFormatData 스위치입니다.
  • DelegatedOrganization 매개 변수는 명령에서 AzureADAuthorizationEndpointUri 매개 변수를 사용하는 한 Connect-IPPSSession cmdlet에서 작동합니다.
  • 특정 시나리오에서 확인을 요청하는 데 사용된 특정 cmdlet은 더 이상 그렇게 하지 않습니다. 기본적으로 cmdlet은 완료될 때까지 실행됩니다.
  • 실패한 cmdlet 실행에서 반환된 오류의 형식이 약간 수정되었습니다. 이제 예외에는 추가 데이터(예: 예외 형식)가 포함되며 FullyQualifiedErrorId 에는 이 FailureCategory포함되지 않습니다. 오류 형식은 추가 수정될 수 있습니다.

버전 2.0.5

  • 소유자 없는 Microsoft 365 그룹을 관리하는 새 Get-OwnerlessGroupPolicySet-OwnerlessGroupPolicy cmdlet.

    참고

    cmdlet은 모듈에서 사용할 수 있지만 기능은 프라이빗 미리 보기의 멤버만 사용할 수 있습니다.

  • Viva Insights 헤드스페이스 기능에 대한 사용자 액세스를 제어하는 새로운 Get-VivaInsightsSettingsSet-VivaInsightsSettings cmdlet.

버전 2.0.4

  • PowerShell 7은 이 문서의 Exchange Online PowerShell 모듈에 대한 필수 구성 요소 섹션에 설명된 대로 Windows, Linux 및 Apple macOS에서 공식적으로 지원됩니다.

  • PowerShell 7의 모듈은 브라우저 기반 SSO(Single Sign-On) 및 기타 로그인 메서드를 지원합니다. 자세한 내용은 PowerShell 7 전용 연결 방법을 참조하세요.

  • Get-UserAnalyticsConfigSet-UserAnalyticsConfig cmdlet은 Get-MyAnalyticsConfigSet-MyAnalyticsConfig로 대체되었으며 기능 수준에서 액세스를 구성할 수 있습니다. 자세한 내용은 MyAnalytics 구성을 참조하세요.

  • 모든 사용자 기반 인증에서 실시간 정책 및 보안을 시행합니다. 모듈에서 CAE(지속적인 액세스 평가)가 사용하도록 설정되었습니다. 여기에서 CAE에 대한 자세한 내용을 읽어보세요.

  • LastUserActionTimeLastInteractionTime 속성은 Get-EXOMailboxStatistics cmdlet의 출력에서 사용할 수 있습니다.

  • 이제 대화형 로그인 프로세스는 보다 안전한 방법을 사용하여 안전한 응답 URL을 사용하여 액세스 토큰을 가져옵니다.

버전 2.0.3

  • CBA(인증서 기반 인증)의 일반적인 가용성: 자동 스크립팅 또는 백그라운드 자동화 시나리오에서 최신 인증을 사용할 수 있습니다. 사용 가능한 인증서 저장 위치는 다음과 같습니다.
    • Azure 키 값(Certificate) 매개 변수의 원격입니다. 이 옵션은 런타임에만 인증서를 가져와 보안을 향상시킵니다.
    • CurrentUser 또는 LocalMachine 인증서 저장소의 로컬(CertificateThumbprint 매개 변수)입니다.
    • 내보낸 인증서 파일의 로컬입니다(CertificateFilePathCertificatePassword 매개 변수). 자세한 내용은 Connect-ExchangeOnline의 매개 변수 설명 및 Exchange Online PowerShell 모듈의 무인 스크립트에 대한 앱 전용 인증을 참조하세요.
  • 단일 PowerShell 창에서 Exchange Online PowerShell 및 Security & Compliance PowerShell에 동시에 연결합니다.
  • CommandName 매개 변수를 사용하면 세션에서 가져온 Exchange Online PowerShell cmdlet을 지정하고 제한할 수 있습니다. 이 옵션은 사용량이 많은 PowerShell 응용 프로그램의 메모리 설치 공간을 줄입니다.
  • Get-EXOMailboxFolderPermission이(가) 이제 Identity 매개 변수의 ExternalDirectoryObject를 지원합니다.
  • 첫 번째 V2 cmdlet 호출의 지연 시간이 최적화되었습니다. 실험실 결과에 따르면 첫 번째 통화 지연 시간이 8초에서 약 1초로 단축되었습니다. 실제 결과는 cmdlet 결과 크기와 테넌트 환경에 따라 달라집니다.

버전 1.0.1

  • EXO V2 모듈의 GA(일반 가용성) 버전입니다. 안정되고 프로덕션 환경에서 사용할 준비가 되었습니다.
  • Get-EXOMobileDeviceStatistics cmdlet이 이제 ID 매개 변수를 지원합니다.
  • 스크립트가 ~50분 동안 실행되고 자동 재연결 로직의 버그로 인해 "Cmdlet을 찾을 수 없음" 오류가 발생하는 경우 세션 자동 재연결의 안정성이 향상되었습니다.
  • 스크립트를 쉽게 마이그레이션할 수 있도록 일반적으로 사용되는 두 가지 "User" 및 "MailboxFolderUser" 특성의 데이터 유형 문제를 수정했습니다.
  • EndsWith, Contains, Not 및 NotLike 지원과 같은 4가지 추가 연산자 지원과 함께 필터에 대한 지원이 향상되었습니다. 필터에서 지원되지 않는 특성은 Exchange Online PowerShell 모듈의 필터를 확인합니다.

버전 0.4578.0

  • Set-UserBriefingConfigGet-UserBriefingConfig cmdlet을 사용하여 사용자 수준에서 조직의 브리핑 전자 메일 구성에 대한 지원이 추가되었습니다.
  • Disconnect ExchangeOnline cmdlet을 사용하여 세션 정리를 지원합니다. 이 cmdlet은 Get-PSSession | Remove-PSSession의 V2와 동일합니다. 세션 개체와 로컬 파일을 정리하는 것 외에도, V2 cmdlet을 인증하는 데 사용되는 액세스 토큰을 캐시에서 제거합니다.
  • 이제 Get-EXOMailboxFolderPermission에서 FolderId을(를) identity 매개 변수로 사용할 수 있습니다. Get-MailboxFolder를 사용하여 FolderId 값을 얻을 수 있습니다. 예를 들어: Get-MailboxFolderPermission -Identity <UPN>:<Folder-Path>Get-MailboxFolderPermission -Identity <UPN>:\<Folder-Id>
  • 특정 요청 라우팅 오류가 해결되어 Get-EXOMailboxStatistics의 안정성이 향상되었습니다.
  • 세션을 가져올 때마다 새 모듈을 만들지 않고 기존 모듈을 새 세션으로 재사용하여 세션을 만들 때 메모리 사용량을 최적화했습니다.

버전 0.4368.1

  • Connect-IPPSSession cmdlet을 사용하여 Security & Compliance PowerShell cmdlet에 대한 지원이 추가되었습니다.
  • ShowBanner 스위치(-ShowBanner:$false)를 사용하여 알림 배너를 숨길 수 있습니다.
  • 클라이언트 예외에서 cmdlet 실행을 종료합니다.
  • 원격 PowerShell에는 성능을 향상시키기 위해 EXO cmdlet에서 의도적으로 지원되지 않은 다양하고 복잡한 데이터 형식이 포함되었습니다. 원격 PowerShell cmdlet과 V2 cmdlet 간에 복잡하지 않은 데이터 유형의 차이가 해결되어 관리 스크립트를 원활하게 마이그레이션할 수 있습니다.

버전 0.3582.0

  • 세션 생성 중 접두사 지원:
    • 접두사 cmdlet이 포함된 세션을 한 번에 하나만 만들 수 있습니다.
    • EXO V2 cmdlet에는 접두사 EXO가 이미 있으므로 접두사로 사용하지 EXO 마세요.
  • 클라이언트 컴퓨터에서 WinRM 기본 인증을 사용하지 않는 경우에도 EXO V2 cmdlet을 사용합니다. 원격 PowerShell cmdlet에는 WinRM 기본 인증이 필요합니다. 비활성화인 경우에는 사용할 수 없습니다.
  • V2 cmdlet의 Identity 매개 변수는 이제 이름 및 별칭도 지원합니다. 별칭 또는 이름을 사용하면 V2 cmdlet의 성능이 저하되므로 사용하지 않는 것이 좋습니다.
  • V2 cmdlet에서 반환한 특성의 데이터 유형이 원격 PowerShell cmdlet과 다른 문제가 해결되었습니다. 여전히 데이터 형식이 서로 다른 몇 가지 특성이 있지만, 앞으로 몇 개월 내에 처리할 계획입니다.
  • 수정된 버그: Connect-ExchangeOnline이 Credentials 또는 UserPrincipalName을 사용하여 호출되면 세션을 자주 재연결하는 문제

버전 0.3555.1

  • 인증 문제로 인해 파이프된 cmdlet이 다음 오류와 함께 실패하는 버그가 수정되었습니다.

    Runspace가 Opened 상태가 아니므로 파이프라인을 호출할 수 없습니다. Runspace의 현재 상태는 '닫혀 있음'입니다.

버전 0.3527.4

  • Get-Help 콘텐츠가 업데이트되었습니다.
  • 온라인 매개 변수가 오류 코드 400이 있는 존재하지 않는 페이지로 리디렉션되는 Get-Help 문제가 수정되었습니다.

버전 0.3527.3

  • 위임 흐름을 사용하여 다른 테넌트에 대한 Exchange 관리 지원을 추가했습니다.
  • 단일 PS 창에서 다른 PowerShell 모듈과 함께 작동합니다.
  • 위치 매개 변수에 대한 지원이 추가되었습니다.
  • 이제 날짜 시간 필드는 클라이언트 로캘을 지원합니다.
  • 버그 수정: Connect-ExchangeOnline 중에 전달될 때 PSCredential이 비어 있음
  • 버그 수정: 필터에 $null이 포함될 때 클라이언트 모듈 오류 발생
  • EXO V2 모듈 내부에서 생성된 세션 이름이 변경되었습니다(이름 지정 패턴: ExchangeOnlineInternalSession_%SomeNumber%).
  • 버그 수정: 토큰 만료와 PSSession의 유휴 시간 차이로 인해 원격 PowerShell cmdlet이 간헐적으로 실패합니다.
  • 주요 보안 업데이트
  • 버그 수정 및 개선 사항