Exchange Online PowerShell 모듈 정보
Exchange Online PowerShell 모듈은 최신 인증을 사용하며 Microsoft 365의 모든 Exchange 관련 PowerShell 환경(Exchange Online PowerShell, 보안 & 규정 준수 PowerShell 및 EOP(독립 실행형 Exchange Online Protection)에 연결하기 위해 MFA(다단계 인증)를 사용하거나 사용하지 않고 작동합니다. PowerShell.
모듈을 사용하는 연결 지침은 다음 문서를 참조하세요.
- Exchange Online PowerShell에 연결
- Security & Compliance PowerShell에 연결
- Exchange Online Protection PowerShell에 연결
- Exchange Online PowerShell 및 보안 & 준수 PowerShell의 무인 스크립트에 대한 앱 전용 인증
- Azure 관리 ID를 사용하여 Exchange Online PowerShell에 연결
- C#을 사용하여 Exchange Online 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에 REST API 연결을 사용합니다.
- powerShell Exchange Online: EXO V3 모듈 v3.0.0 이상.
- 보안 & 규정 준수 PowerShell: EXO V3 모듈 v3.2.0 이상.
REST API 연결에는 PowerShellGet 및 PackageManagement 모듈이 필요합니다. 자세한 내용은 Windows의 REST 기반 연결에 대한 PowerShellGet을 참조하세요.
REST API 연결의 Cmdlet은 기록 항목에 비해 다음과 같은 이점이 있습니다.
- 보안 강화: 최신 인증을 기본적으로 지원하며 원격 PowerShell 세션에 의존하지 않습니다. 클라이언트 컴퓨터의 PowerShell에는 WinRM의 기본 인증이 필요하지 않습니다.
-
더 안정적: 일시적인 오류는 기본 제공 재시도를 사용하므로 오류 또는 지연이 최소화됩니다. 예시:
- 네트워크 지연으로 인한 오류입니다.
- 완료하는 데 오랜 시간이 걸리는 대규모 쿼리로 인해 지연됩니다.
- 성능 향상: REST API 연결은 PowerShell Runspace를 설정하지 않습니다.
REST API 연결에서 cmdlet의 이점은 다음 표에 설명되어 있습니다.
원격 PowerShell cmdlet | Get-EXO* cmdlet | REST API cmdlet | |
---|---|---|---|
보안 | 최소 보안 | 매우 안전한 | 매우 안전한 |
성능 | 낮은 성능 | 고성능 | 중간 성능 |
안정성 | 가장 신뢰할 수 없는 경우 | 매우 신뢰할 수 있는 | 매우 신뢰할 수 있는 |
기능 | 사용 가능한 모든 매개 변수 및 출력 속성 | 사용 가능한 제한된 매개 변수 및 출력 속성 | 사용 가능한 모든 매개 변수 및 출력 속성 |
REST API cmdlet은 동일한 cmdlet 이름을 가지며 원격 PowerShell과 동일하게 작동하므로 이전 스크립트에서 cmdlet 이름 또는 매개 변수를 업데이트할 필요가 없습니다.
팁
Invoke-Command cmdlet은 REST API 연결에서 작동하지 않습니다. 대안은 REST API 연결의 Invoke-Command 시나리오에 대한 해결 방법을 참조하세요.
기본 인증(원격 PowerShell) 연결은 Exchange Online PowerShell 및 보안 & 규정 준수 PowerShell에서 더 이상 사용되지 않습니다. 자세한 내용은 여기와 여기 를 참조 하세요.
Exchange Online PowerShell의 몇 cmdlet이 REST API 연결에서 실험적 UseCustomRouting 스위치로 업데이트되었습니다. 이 스위치는 명령을 필요한 사서함 서버로 직접 라우팅하고 전체 성능을 향상시킬 수 있습니다. UseCustomRouting 스위치를 실험적으로 사용합니다.
UseCustomRouting 스위치를 사용하는 경우 편지함 ID에 다음 값만 사용할 수 있습니다.
- UPN(사용자 계정 이름)
- 전자 메일 주소
- 사서함 GUID
UseCustomRouting 스위치는 REST API 연결의 다음 Exchange Online PowerShell 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
Get-ConnectionInformation cmdlet을 사용하여 PowerShell 및 보안 & 준수 PowerShell을 Exchange Online REST API 연결에 대한 정보를 가져옵니다. 이 cmdlet은 Windows PowerShell Get-PSSession cmdlet이 REST API 연결에 대한 정보를 반환하지 않기 때문에 필요합니다.
Get-ConnectionInformation을 사용할 수 있는 시나리오는 다음 표에 설명되어 있습니다.
시나리오 예상 출력 REST API 연결에 대한 Connect-ExchangeOnline 또는 Connect-IPPSSession 명령 후에 실행합니다. 하나의 연결 정보 개체를 반환합니다. REST API 연결에 대해 여러 Connect-ExchangeOnline 또는 Connect-IPPSSession 명령을 실행합니다. 연결 정보 개체의 컬렉션을 반환합니다. Connect-ExchangeOnline cmdlet에서 SkipLoadingFormatData 스위치를 사용하여 형식 데이터를 로드하지 않고 Connect-ExchangeOnline 명령을 더 빠르게 실행합니다.
REST API에서 지원되는 Cmdlet의 시간 제한은 15분이며 대량 작업에 영향을 줄 수 있습니다. 예를 들어 배포 그룹의 10,000명의 멤버를 업데이트하는 다음 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
발생할 수 있는 문제를 보고합니다. 전자 메일 메시지에 로그 파일을 포함해야 합니다. 로그 파일을 생성하려면 Path>를 출력 폴더로 바꾼 <다음 다음 명령을 실행합니다.
Connect-ExchangeOnline -EnableErrorReporting -LogDirectoryPath <Path> -LogLevel All
Exchange Online PowerShell 모듈의 Cmdlet
EXO 모듈에는 Exchange Online PowerShell의 대량 데이터 검색 시나리오(수천 및 수천 개의 개체)의 속도에 최적화된 9개의 전용 Get-EXO* cmdlet이 포함되어 있습니다. 모듈의 향상된 cmdlet은 다음 표에 나와 있습니다.
팁
동일한 창에서 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 이상에서 사용할 수 있습니다. |
팁
단일 PowerShell 세션 또는 스크립트에서 Connect-ExchangeOnline 및 Disconnect-ExchangeOnline cmdlet을 자주 사용하면 메모리 누수가 발생할 수 있습니다. 이 문제를 방지하는 가장 좋은 방법은 Connect-ExchangeOnline cmdlet에서 CommandName 매개 변수를 사용하여 세션에서 사용되는 cmdlet을 제한하는 것입니다.
모듈에 있는 기타 Exchange Online cmdlet은 다음 표에 나와 있습니다.
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을 설치한 후 다음 단계를 수행합니다.
PowerShell을 수퍼 사용자로 실행:
sudo pwsh
PowerShell 수퍼 사용자 세션에서 다음 명령을 실행합니다.
Install-Module -Name PSWSMan Install-WSMan
메시지가 표시되면 PSGallery를 cmdlet의 원본으로 수락합니다.
이제 일반 PowerShell 필수 구성 요소를 수행하고 Exchange Online PowerShell 모듈을 설치할 수 있습니다.
Linux
이 모듈은 Linux의 다음 배포판에서 공식적으로 지원됩니다.
- Ubuntu 24.04 LTS
- Ubuntu 20.04 LTS
- Ubuntu 18.04 LTS
Linux에서 PowerShell 7을 설치하는 방법에 대한 지침은 Linux에 PowerShell 설치를 참조하세요.
PowerShell 7을 설치한 후 다음 단계를 수행합니다.
PowerShell을 수퍼 사용자로 실행:
sudo pwsh
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 API 연결에는 이 섹션에 설명된 대로 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 API 연결용 PowerShellGet
Windows의 REST API 연결에는 PowerShellGet 모듈과 종속성에 따라 PackageManagement 모듈이 필요합니다. 이러한 모듈에 대한 고려 사항은 PowerShell 7보다 PowerShell 5.1에 더 많지만 모든 버전의 PowerShell은 최신 버전의 모듈을 설치하는 것이 좋습니다. 설치 및 업데이트 지침은 Windows에 PowerShellGet 설치를 참조하세요.
팁
PackageManagement 또는 PowerShellGet 모듈의 베타 버전으로 인해 연결 문제가 발생할 수 있습니다. 연결 문제가 있는 경우 명령을 Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions
실행하여 설치한 모듈의 베타 버전이 없는지 확인합니다.
REST API 연결을 만들려고 할 때 PowerShellGet이 설치되어 있지 않으면 연결을 시도할 때 다음 오류가 발생합니다.
cmdlet Update-Manifest 찾을 수 없습니다.
Exchange Online PowerShell 모듈 설치
모듈을 처음으로 설치하려면 다음 단계를 완료합니다.
PowerShellGet 설치에 설명된 대로 PowerShellGet 모듈을 설치하거나 업데이트합니다.
Windows PowerShell 창을 닫았다가 다시 엽니다.
이제 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 모듈 업데이트
모듈이 컴퓨터에 이미 설치된 경우 이 섹션의 절차를 사용하여 모듈을 업데이트할 수 있습니다.
현재 설치되어 있고 모듈이 설치된 모듈의 버전을 보려면 다음 명령을 실행합니다.
Get-InstalledModule ExchangeOnlineManagement | Format-List Name,Version,InstalledLocation
모듈이 C:\Program Files\WindowsPowerShell\Modules에 설치된 경우 모든 사용자에 대해 설치됩니다. 모듈이 Documents 폴더에 설치된 경우 현재 사용자 계정에 대해서만 설치됩니다.
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를 입력합니다.
업데이트가 성공했는지 확인하려면 다음 명령을 실행하여 설치된 모듈의 버전 정보를 확인합니다.
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 창을 닫았다가 다시 열어야 합니다.
다음과 같은 오류가 나타날 수 있습니다.
지정된 검색 조건 및 모듈 이름 'ExchangeOnlineManagement'와 일치하는 항목이 없습니다. 사용 가능한 등록된 모듈 리포지토리를 모두 보려면
Get-PSRepository
을(를) 실행해 보세요.PowerShell 모듈의 기본 리포지토리는 PSGallery로 설정되지 않습니다. 이 오류를 해결하려면 다음 명령을 실행합니다.
Register-PSRepository -Default
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를 참조하세요.
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에서 속성 집합은 다음 매개 변수로 제어됩니다.
- PropertySets: 이 매개 변수는 하나 이상의 사용 가능한 속성 집합 이름을 쉼표로 구분하여 허용합니다. 사용 가능한 속성 집합은 Exchange Online PowerShell 모듈 cmdlet의 속성 집합에 설명되어 있습니다.
- 속성: 이 매개 변수는 쉼표로 구분된 하나 이상의 속성 이름을 허용합니다.
PropertySets 및 Properties 매개 변수를 동일한 명령에서 함께 사용할 수 있습니다.
cmdlet 출력에 필요한 최소 속성 집합(예: ID 속성)을 포함하는 Minimum 속성 집합도 포함되었습니다. 최소 속성 집합의 속성은 Exchange Online PowerShell 모듈 cmdlet의 속성 집합에도 설명되어 있습니다.
- PropertySets 또는 Properties 매개 변수를 사용하지 않는 경우에는 최소 속성 집합의 속성을 자동으로 가져옵니다.
- PropertySets 또는 Properties 매개 변수를 사용하면 지정된 속성 및 최소 속성 집합의 속성이 나타납니다.
어느 쪽이든 cmdlet 출력에는 훨씬 적은 수의 속성이 포함되며 결과가 훨씬 빠르게 반환됩니다.
예를 들어 Exchange Online PowerShell에 연결한 후 다음 예제에서는 처음 10개의 사서함에 대해 설정된 Minimum 속성의 속성만 반환합니다.
Get-EXOMailbox -ResultSize 10
반면 동일한 Get-Mailbox 명령의 출력은 처음 10개 사서함 각각에 대해 230개 이상의 속성을 반환합니다.
참고
PropertySets 매개 변수에서 All 값을 사용할 수 있지만 명령 속도가 느려지고 신뢰성이 저하되기 때문에 이 값을 사용하여 모든 속성을 검색할 수 없습니다. 항상 PropertySets 및 Properties 매개 변수를 사용하여 시나리오에 필요한 최소 속성 수를 검색합니다.
모듈의 필터링에 대한 자세한 내용은 Exchange Online PowerShell 모듈의 필터를 참조하세요.
릴리스 정보
달리 명시되지 않는 한, Exchange Online PowerShell 모듈의 현재 릴리스에는 이전 릴리스의 모든 기능이 포함되어 있습니다.
현재 릴리스
버전 3.6.0
- Get-VivaModuleFeature 는 이제 기능에서 정책 만들기를 지원하는 ID 종류(예: 사용자, 그룹 또는 전체 테넌트)에 대한 정보를 반환합니다.
- Viva 기능 액세스 관리를 위한 Cmdlet은 이제 CAE(지속적인 액세스 평가) 클레임 챌린지를 처리합니다.
- Microsoft.Graph 모듈과의 호환성 문제에 대한 수정이 추가되었습니다.
이전 릴리스
버전 3.5.1
- Get-EXOMailboxPermission 및 Get-EXOMailbox의 버그 수정
- 모듈이 .NET 8에서 실행되도록 업그레이드되어 .NET 6을 기반으로 하는 이전 버전이 대체되었습니다.
- Add-VivaModuleFeaturePolicy의 향상된 기능
버전 3.5.0
- 새 Get-VivaFeatureCategory cmdlet.
- Viva VFAM(기능 액세스 관리)의 범주 수준에서 정책 작업에 대한 지원이 추가되었습니다.
- Get-VivaModuleFeaturePolicy의 출력에 있는 새 IsFeatureEnabledByDefault 속성입니다. 이 속성의 값은 테넌트 또는 사용자/그룹 정책을 만들지 않은 경우 테넌트에서 사용자의 기본 사용 상태를 표시합니다.
버전 3.4.0
- Connect-ExchangeOnline, Get-EXORecipientPermission 및 Get-EXOMailboxFolderPermission의 버그 수정
- Connect-ExchangeOnline의 SigningCertificate 매개 변수는 이제 CLM(제한된 언어 모드)을 지원합니다.
버전 3.3.0
- Connect-ExchangeOnline의 SkipLoadingCmdletHelp 매개 변수로 cmdlet 도움말 파일 로드 건너뛰기를 지원합니다.
- 전역 변수
EXO_LastExecutionStatus
는 실행된 마지막 cmdlet의 상태 검사 사용할 수 있습니다. - Connect-ExchangeOnline 및 Connect-IPPSSession의 버그 수정
- Add-VivaModuleFeaturePolicy 및 Update-VivaModuleFeaturePolicy의 IsUserControlEnabled 매개 변수는 Viva 기능 액세스 관리에 온보딩된 기능에 대한 정책별 사용자 제어 사용을 지원합니다.
버전 3.2.0
- 새 cmdlet:
- Get-DefaultTenantBriefingConfig 및 Set-DefaultTenantBriefingConfig.
- Get-DefaultTenantMyAnalyticsFeatureConfig 및 Set-DefaultTenantMyAnalyticsFeatureConfig.
- Get-VivaModuleFeature, Get-VivaModuleFeatureEnablement, Add-VivaModuleFeaturePolicy, Get-VivaModuleFeaturePolicy, Remove-VivaModuleFeaturePolicy 및 Update-VivaModuleFeaturePolicy.
- 보안 & 규정 준수 PowerShell에 대한 REST API 연결 지원.
-
Get-ConnectionInformation 및 Disconnect-ExchangeOnline의 ConnectionId 매개 변수:
- 특정 REST API 연결에 대한 연결 정보를 가져옵니다.
- REST API 연결에 대한 선택적 연결 끊기.
- Connect-ExchangeOnline의 SigningCertificate 매개 변수를 사용하면 서식 파일(*)에 서명할 수 있습니다. Connect-ExchangeOnline이 모든 PowerShell 실행 정책에서 사용할 클라이언트 인증서를 사용하여 만드는 임시 모듈의 Format.ps1xml) 또는 스크립트 모듈 파일(.psm1)입니다.
- Connect-ExchangeOnline의 버그 수정
버전 3.1.0
- Connect-ExchangeOnline에서 사용할 수 있는 AccessToken 매개 변수입니다.
- Connect-ExchangeOnline 및 Get-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-OwnerlessGroupPolicy 및 Set-OwnerlessGroupPolicy cmdlet.
참고
cmdlet은 모듈에서 사용할 수 있지만 기능은 프라이빗 미리 보기의 멤버만 사용할 수 있습니다.
Viva Insights 헤드스페이스 기능에 대한 사용자 액세스를 제어하는 새로운 Get-VivaInsightsSettings 및 Set-VivaInsightsSettings cmdlet.
버전 2.0.4
PowerShell 7은 이 문서의 Exchange Online PowerShell 모듈에 대한 필수 구성 요소 섹션에 설명된 대로 Windows, Linux 및 Apple macOS에서 공식적으로 지원됩니다.
PowerShell 7의 모듈은 브라우저 기반 SSO(Single Sign-On) 및 기타 로그인 메서드를 지원합니다. 자세한 내용은 PowerShell 7 전용 연결 방법을 참조하세요.
Get-UserAnalyticsConfig 및 Set-UserAnalyticsConfig cmdlet은 Get-MyAnalyticsConfig 및 Set-MyAnalyticsConfig로 대체되었습니다. 또한 기능 수준에서 액세스를 구성할 수 있습니다. 자세한 내용은 MyAnalytics 구성을 참조하세요.
모든 사용자 기반 인증에서 실시간 정책 및 보안을 시행합니다. CAE(연속 액세스 평가)는 모듈에서 사용하도록 설정됩니다. 여기에서 CAE에 대한 자세한 내용을 읽어보세요.
LastUserActionTime 및 LastInteractionTime 속성은 Get-EXOMailboxStatistics cmdlet의 출력에서 사용할 수 있습니다.
이제 대화형 로그인 프로세스는 보다 안전한 방법을 사용하여 안전한 응답 URL을 사용하여 액세스 토큰을 가져옵니다.
버전 2.0.3
- CBA(인증서 기반 인증)의 일반적인 가용성: 자동 스크립팅 또는 백그라운드 자동화 시나리오에서 최신 인증을 사용할 수 있습니다. 사용 가능한 인증서 저장 위치는 다음과 같습니다.
- Azure 키 값(Certificate) 매개 변수의 원격입니다. 이 옵션은 런타임에만 인증서를 가져와 보안을 향상시킵니다.
- CurrentUser 또는 LocalMachine 인증서 저장소의 로컬(CertificateThumbprint 매개 변수)입니다.
- 내보낸 인증서 파일의 로컬입니다(CertificateFilePath 및 CertificatePassword 매개 변수). 자세한 내용은 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-UserBriefingConfig 및 Get-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 연결에는 WinRM 기본 인증이 필요하며, WinRM에서 기본 인증을 사용하지 않도록 설정한 경우 원격 PowerShell cmdlet을 사용할 수 없습니다.
- V2 cmdlet에 대한 ID 매개 변수는 이제 Name 및 Alias를 지원합니다. 별칭 또는 이름을 사용하면 V2 cmdlet의 성능이 저하되므로 사용하지 않는 것이 좋습니다.
- V2 cmdlet에서 반환한 특성의 데이터 유형이 원격 PowerShell cmdlet과 다른 문제가 해결되었습니다. 데이터 형식이 다른 특성은 거의 없으며 앞으로 몇 달 안에 처리할 계획입니다.
- 수정된 버그: 자격 증명 또는 UserPrincipalName을 사용하여 Connect-ExchangeOnline 호출될 때 자주 발생하는 세션 다시 연결 문제
버전 0.3555.1
- 인증 문제로 인해 파이프된 cmdlet이 다음 오류와 함께 실패하는 버그가 수정되었습니다.
Runspace가 Opened 상태가 아니므로 파이프라인을 호출할 수 없습니다. Runspace의 현재 상태는 '닫혀 있음'입니다.
버전 0.3527.4
- Get-Help 콘텐츠가 업데이트되었습니다.
- Get-Help에서 온라인 매개 변수가 오류 코드 400이 있는 존재하지 않는 페이지로 리디렉션되는 문제를 해결했습니다.
버전 0.3527.3
- 위임 흐름을 사용하여 다른 테넌트에 대한 Exchange 관리 지원을 추가했습니다.
- 단일 PowerShell 창에서 다른 PowerShell 모듈과 함께 작동합니다.
- 위치 매개 변수에 대한 지원이 추가되었습니다.
- 이제 날짜 시간 필드는 클라이언트 로캘을 지원합니다.
- 버그 수정: Connect-ExchangeOnline 중에 전달될 때 PSCredential이 비어 있음
- 버그 수정: 필터에 $null이 포함될 때 클라이언트 모듈 오류 발생
- EXO V2 모듈 내부에서 생성된 세션 이름이 변경되었습니다(이름 지정 패턴: ExchangeOnlineInternalSession_%SomeNumber%).
- 버그 수정: 토큰 만료와 세션 유휴 상태 간의 차이로 인해 원격 PowerShell cmdlet이 간헐적으로 실패합니다.
- 주요 보안 업데이트
- 버그 수정 및 개선 사항