Netwrix 1Secure는 데이터와 아이덴티티 전반에 걸쳐 통합된 가시성을 제공합니다 - 14일간 무료로 전체 액세스가 가능합니다.무료 평가판 시작

리소스 센터블로그

Exchange에서 Get-Mailbox Cmdlet을 사용해 메일박스 목록 내보내기

Exchange에서 Get-Mailbox Cmdlet을 사용해 메일박스 목록 내보내기

Aug 12, 2025

Get-Mailbox Cmdlet이란?

Get-Mailbox cmdlet은 Exchange Management Shell(Exchange Server용)과 Exchange Online PowerShell 모듈(Office 365용)의 핵심 명령입니다. Exchange 환경에서 메일박스에 대한 정보를 검색하는 데 사용됩니다. 사용자 사서함, 연결된 사서함, 공유 사서함 또는 리소스 사서함을 다루든 관계없이 Get-Mailbox를 사용하면 데이터베이스, 서버 또는 조직 단위 같은 지정된 범위 내의 모든 메일박스를 나열하거나 단일 메일박스의 자세한 속성을 검색할 수 있습니다. 또한 결과를 필터링하여 특정 기준을 충족하는 메일박스만 반환하도록 설정할 수도 있습니다.

PowerShell의 Get-Mailbox cmdlet은 반환되는 정보를 사용자 지정하는 데 사용할 수 있는 다양한 매개 변수를 지원합니다. -Properties 같은 매개 변수를 사용하면 사서함(메일박스) 속성에 대한 포괄적인 상세 정보를 확인할 수 있습니다. Get-Mailbox의 출력 결과는 CSV 또는 JSON 형식으로 손쉽게 내보낼 수 있어, 다른 도구 및 플랫폼과의 통합을 용이하게 합니다. 또한 Get-Mailbox cmdlet은 Exchange 환경에서 PowerShell 스크립팅의 유연성도 제공합니다.

온프레미스 Exchange와 클라우드 기반 서비스 모두에서 사용 가능

Get-Mailbox PowerShell cmdlet은 온프레미스 Exchange Server 환경과 Exchange Online(Office 365) 모두에서 사용할 수 있지만, 구현 방식과 제공되는 기능에는 차이가 있습니다. Exchange Server 2007의 Exchange Management Shell의 일부로 도입되었습니다.

온프레미스 Exchange Server

Get-Mailbox는 Exchange Server 2010, 2013, 2016, 2019에서 사용할 수 있습니다. Get-Mailbox는 온프레미스 Exchange에서 Exchange Management Shell(EMS)을 통해 사용하거나, PowerShell에서 Exchange 모듈을 로드하여 사용할 수 있습니다. 데이터베이스, 조직 단위, 수신자 유형 등으로 필터링하기 위한 매개변수를 포함합니다. 이름, 이메일 주소, 사서함 데이터베이스 등 다양한 사서함 속성을 출력합니다.

Exchange Online (Office 365)

PowerShell을 통해 Get-Mailbox를 사용하면 원격 PowerShell 연결을 통해 액세스하는 Exchange Online에서 사용할 수 있습니다. 이 모듈은 클라우드 기반 관리 기능을 제공하며 원격으로 액세스합니다. 온프레미스 Exchange와 유사하지만 클라우드 환경에 최적화된 추가 매개변수나 기능이 포함될 수 있습니다. 출력에는 클라우드 관리를 위해 관련된 속성이 포함됩니다.

Exchange Online에서 Get-EXOMailbox cmdlet 사용을 권장

Get-EXOMailbox cmdlet은 Exchange Online PowerShell 모듈의 일부이며, Office 365의 일부인 Exchange Online의 사서함에 대한 정보를 가져오는 데 사용됩니다. 이 cmdlet은 Exchange Online에 맞게 개선된 Get-Mailbox의 대안입니다. Get-EXOMailbox는 클라우드 환경에 최적화되어 있어 더 나은 성능과 Office 365를 위해 설계된 추가 기능을 제공할 수 있습니다. 이 cmdlet은 클라우드 기반 구성에서 특히 유용한 더 고급 필터링 및 쿼리 옵션을 제공하며, 다른 Office 365 서비스 및 기능과의 통합도 더 좋습니다.

Get-EXOMailbox 사용 권장 사항

  • Exchange Online에서 작업할 때는 성능을 최적화하고 클라우드 전용 기능을 활용하기 위해 Get-Mailbox 대신 Get-EXOMailbox를 사용하세요.
  • 특정 기준에 따라 우편함의 일부를 효율적으로 검색하려면 -Filter 매개 변수를 사용하세요. 이로써 부하를 줄이고 쿼리 성능을 향상시킬 수 있습니다.
  • 대규모 조직의 경우 -ResultSize Unlimited를 사용하여 관련된 모든 메일박스를 누락 없이 수집하세요. 데이터 세트가 매우 큰 경우에는 성능에 미칠 영향을 주의하세요.
  • Exchange Online에서 자동화된 보고, 관리 및 유지보수 작업을 수행하려면 PowerShell 스크립트에 Get-EXOMailbox를 사용하세요.

Get-Mailbox cmdlet의 기능

Exchange Server 및 Exchange Online의 Get-Mailbox cmdlet은 사서함에 대한 자세한 정보를 검색하는 데 사용됩니다. 이 cmdlet은 어떤 데이터도 수정하지 않으며, 주요 기능은 사서함의 속성과 구성을 수집하고 표시하는 것입니다. 여기에는 사서함 크기, 할당량, 항목 수, 마지막 액세스 시간 등 다양한 데이터가 포함됩니다. 또한 cmdlet은 사용되는 매개변수에 따라 특정 사서함, 사서함 그룹 또는 모든 사서함을 대상으로 유연하게 지정할 수 있습니다.

목적

Get-Mailbox cmdlet은 사용자 사서함, 공유 사서함, 리소스 사서함(예: 회의실, 공유 및 장비 사서함) 등 다양한 사서함에 대한 정보를 검색합니다. 또한 사서함 속성, 위치, 구성과 같은 세부 정보도 제공합니다.

주요 사용 사례

보고 목적에 맞게 메일박스 목록을 생성합니다. 예를 들어 메일박스 유형, 위치, 속성을 감사(점검)하는 용도입니다. 메일박스 설정을 구성하거나 대량 작업을 수행하는 등 메일박스 관리 작업에 필요한 세부 정보를 검색합니다. 구성, 쿼터 등과 관련된 메일박스별 정보를 제공하여 문제 진단에 도움을 줍니다.

작업

Get-Mailbox cmdlet을 실행하면 메일박스 정보를 검색하기 위해 온프레미스 환경에서는 Exchange 디렉터리 서비스인 Active Directory 또는 Office 365의 Exchange Online 디렉터리를 조회합니다. 이 cmdlet은 메일박스 데이터베이스 또는 디렉터리에서 데이터를 가져오고, 지정된 매개변수에 따라 이를 표시합니다. 여기에는 이메일 주소, 메일박스 크기 등과 같은 속성이 포함됩니다.

출력

기본적으로 Get-Mailbox는 DisplayName, PrimarySmtpAddress, Database, Recipient Type과 같은 일련의 일반 속성을 표시합니다. Select-Object를 사용하면 출력에 추가 또는 특정 속성을 표시하도록 커스터마이즈할 수 있습니다.

매개변수

-Identity, -Database, -OrganizationalUnit, -Filter 같은 매개변수를 사용하면 데이터베이스 위치, 조직 단위 또는 사용자 지정 특성과 같은 기준에 따라 특정 사서함 또는 사서함 그룹으로 검색 범위를 좁힐 수 있습니다. -ResultSize를 사용하면 반환되는 결과 수를 제어할 수 있으며, 이는 성능을 관리하고 관련 데이터 하위 집합에 집중하는 데 도움이 됩니다. Get-Mailbox는 더 많은 작업을 위해 다른 여러 매개변수를 지원합니다.

Get-Mailbox cmdlet 실행에 필요한 권한

Exchange Server 및 Exchange Online에서 Get-Mailbox cmdlet을 실행하려면 특정 권한이 필요합니다. 이러한 권한은 사서함 정보를 검색하기 위해 누가 cmdlet을 실행할 수 있는지 결정합니다. 이러한 권한은 일반적으로 Exchange의 역할 기반 액세스 제어(RBAC)를 통해 할당됩니다. 해당 역할에는 일반적으로 “Recipient Management(수신자 관리)”, “Organization Management(조직 관리)” 또는 “View-Only Organization Management(읽기 전용 조직 관리)”가 포함됩니다. 아래는 Get-Mailbox cmdlet 실행에 필요한 권한에 대한 자세한 개요입니다.

Exchange Server(온프레미스)

온프레미스 Exchange Server 환경에서는 일반적으로 다음을 통해 부여되는 권한이 있습니다. role-based access control (RBAC). RBAC 역할은 조직 전체부터 특정 사서함 데이터베이스에 이르기까지 여러 범위에서 할당될 수 있습니다.

수신자 관리 역할

Get-Mailbox 실행을 포함한 일반 사서함 관리의 경우, 사용자는 일반적으로 “Recipient Management” 역할 그룹에 추가됩니다. 이 역할 그룹에는 사서함을 만들고, 관리하고, 제거할 수 있도록 허용하는 역할을 비롯해 여러 수신자 관련 작업이 포함됩니다.

조직 관리 역할

모든 사서함 관련 cmdlet을 실행할 수 있는 권한을 포함해 고수준의 관리 권한이 필요한 경우, Exchange 조직 전체에 걸쳐 권한을 부여하는 “Organization Management” 역할 그룹을 사용할 수 있습니다.

읽기 전용 조직 관리 역할

이 역할은 Get-Mailbox를 실행할 수 있지만 조직 설정을 수정할 수는 없는 읽기 전용 액세스를 조직 설정에 제공합니다.

사용자 지정 RBAC 역할

또한 Get-Mailbox cmdlet을 포함하도록 특별히 사용자 지정 역할을 만들 수 있으며, 필요한 것보다 더 넓은 액세스 권한을 부여하지 않으면서 특정 요구 사항에 맞게 권한을 조정할 수 있습니다.

Exchange Online (Office 365)

Get-Mailbox 용 Exchange Online에서는 권한이 전반적인 Office 365 권한 구조의 일부인 RBAC를 통해 유사하게 관리됩니다. 온-프레미스 Exchange 서버에 대해 앞에서 언급한 모든 역할도 사용할 수 있지만, 아래에 언급된 추가적인 일부 고수준 역할도 Get-Mailbox cmdlet을 실행할 수 있는 권한을 보유합니다.

전역 관리자

전역 관리자 역할이 있는 사용자는 Exchange Online 조직 전체에서 다른 관리용 cmdlet과 함께 Get-Mailbox를 실행할 수 있는 권한을 보유합니다.

Exchange 관리자 역할

Exchange Online 전용으로, Exchange 관리자 역할은 Get-Mailbox 실행을 포함하여 Exchange 설정과 개체 관리에 필요한 권한을 제공합니다.

맞춤형 관리자 역할

Office 365는 온-premises의 Exchange와 같이 맞춤형 관리자 역할을 생성할 수 있도록 지원합니다. 사용자 지정 역할에는 Get-Mailbox cmdlet을 특정 항목으로 포함하고, 그 외에 필요한 cmdlet을 함께 추가할 수 있어 권한을 정밀하게 제어할 수 있습니다.

Get-Mailbox cmdlet 문법

기본 구문

Get-Mailbox cmdlet을 가장 간단하게 사용하는 방법은 PowerShell로 모든 사서함을 가져오는 것입니다. 이 cmdlet은 매개변수 없이 사용하면 모든 사서함의 요약 목록을 반환하며, 환경에 따라 DisplayName, Alias, ServerName, ProhibitSendQuota 등과 같은 주요 속성이 포함됩니다.

      Get-Mailbox
      
Image

일반 구문

여러 매개 변수를 사용하는 Get-Mailbox의 일반적인 구조는 다음과 같습니다.

      Get-Mailbox [-Identity <MailboxIdParameter>] [-Database <DatabaseIdParameter>] [-OrganizationalUnit <OrganizationalUnitIdParameter>] [-RecipientTypeDetails <RecipientTypeDetails>] [-Filter <FilterExpression>] [-ResultSize <Unlimited | Integer>] [-DomainController <Fqdn>] [-ReadFromDomainController] [-Anr <String>] [-IncludeSoftDeletedMailboxes] [-MessageTrackingLogPath <String>] [-ResultSize <Unlimited | Integer>]
      

아래는 하나의 매개 변수가 있는 일반 구문입니다.

      Get-Mailbox [-Parameter <value>]
      

자주 사용되는 Get-Mailbox 매개 변수

다음은 널리 사용되는 Get-Mailbox 매개변수입니다:

Get-Mialbox Parameters

Syntax

-Identity Parameter

Get-Mailbox -Identity “BarbaraCole”

-Filter Parameter

Get-Mailbox -Filter {Name -like “Bar*”}

Get-Mailbox -Filter {DisplayName -like “Bar*”}

Get-Mailbox -Filter {CustomAttribute1 -like ‘TeamA’}

-Database Parameter

Get-Mailbox -Database “ Mailbox Database 1767124038″

-OrganizationalUnit Parameter

Get-Mailbox -OrganizationalUnit “OU=Versacorp,DC=MILKYWAY,DC=LOCAL”

-Arbitration Parameter

Get-Mailbox -Arbitration

-AuditLog Paramter

Get-Mailbox -AuditLog

-RecipientTypeDetails Parameter

Get-Mailbox -RecipientTypeDetails SharedMailbox

-ResultSize Parameter

Get-Mailbox -ResultSize 10

-SoftDeletedMailbox Parameter

Get-Mailbox -SoftDeletedMailbox

-Anr

Get-Mailbox -Anr “Adita”

-SortBy

Get-Mailbox -SortBy Name

각 항목을 하나씩 살펴보겠습니다.

-Identity 매개변수

-Identity 매개변수는 검색할 사서함(메일박스)을 지정합니다. 사서함 GUID, 고유 이름(Distinguished Name, DN), Domain\Username, 사용자 주체 이름(User Principal Name, UPN), 레거시 Exchange DN, SMTP 주소 또는 별칭(Alias)과 같은 여러 형태의 식별자를 입력으로 받을 수 있습니다. 이 매개변수는 특정 사서함에 대한 정보를 빠르게 확인하는 데 사용할 수 있습니다.

      Get-Mailbox -Identity "BarbaraCole"
      
Image

-Filter 매개변수

-Filter 매개변수는 더 복잡한 쿼리를 수행할 수 있게 해줍니다. 부서, 사용자 지정 특성 또는 사서함 크기 같은 속성을 기준으로, 관심 있는 사서함의 정확한 대상을 찾아내는 조건을 정의하는 데 사용됩니다.

      Get-Mailbox -Filter {Name -like "Bar*"}

Get-Mailbox -Filter {DisplayName -like "Bar*"}

Get-Mailbox -Filter {CustomAttribute1 -like 'TeamA'}
      
Image

-Database 매개변수

-Database 매개변수는 사서함이 저장되어 있는 데이터베이스를 기준으로 사서함을 필터링합니다. 마이그레이션 중이거나 특정 데이터베이스 전용 보고서를 생성하는 등 특정 데이터베이스를 대상으로 하는 작업에 유용합니다.

      Get-Mailbox -Database " Mailbox Database 1767124038"
      
Image

-OrganizationalUnit 매개변수

-OrganizationalUnit 매개변수는 특정 Active Directory 조직 단위 내에 있는 사서함으로 검색 범위를 좁힙니다. OU 계층 구조가 잘 정리된 대규모 조직에서 특히 유용합니다.

      Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL"
      
Image

-중재(Arbitration) 매개변수

-Arbitration 스위치 매개변수는 중재 메일박스를 검색합니다. 중재 메일박스는 관리자 감사 로그, eDiscovery 정보 및 기타 시스템 관련 작업 등 조직 데이터를 저장하는 데 사용되는 시스템 메일박스입니다.

      Get-Mailbox -Arbitration
      
Image

-감사 로그(Audit Log) 매개변수

-AuditLog 스위치 매개변수는 관리자와 사용자가 수행한 작업에 대한 감사 로그를 포함하는 감사 로그 메일박스를 검색하는 데 사용됩니다. 이는 준수(compliance)와 모니터링 목적에 중요합니다.

      Get-Mailbox -AuditLog
      
Image

-수신자 유형 세부 정보(RecipientTypeDetails) 매개변수

이 매개변수는 UserMailbox, SharedMailbox, RoomMailbox, EquipmentMailbox 등 메일함의 유형에 따라 메일함을 필터링할 수 있게 해줍니다. 특정 유형의 메일함을 관리하기 위한 작업을 보다 쉽게 수행할 수 있습니다.

      Get-Mailbox -RecipientTypeDetails SharedMailbox
      
Image

-ResultSize 매개변수

-ResultSize 매개변수는 cmdlet이 반환하는 결과의 수를 제한합니다. 기본적으로 Get-Mailbox는 최대 1000개의 메일함을 가져옵니다. 이 매개변수를 “Unlimited”로 설정하면 잘림 없이 모든 메일함의 세부 정보를 가져올 수 있으며, 예를 들어 50처럼 더 작은 값으로 설정하면 제공된 값에 따라 결과가 반환됩니다.

      Get-Mailbox -ResultSize 10
      
Image

-SoftDeletedMailbox 매개변수

소프트 삭제되었지만 영구적으로 제거되지 않은 메일함을 검색합니다. 이 매개변수는 Exchange Online (Office365)에서만 사용할 수 있습니다.

      Get-Mailbox -SoftDeletedMailbox
      
Image

-Anr

-Anr (Ambiguous Name Resolution) 매개변수는 -Identity 매개변수와 함께 사용하여, 지정한 문자열이 사서함의 실제 식별자와 가깝거나 유사한 사서함을 검색합니다. 사서함의 정확한 이름이나 별칭을 알 수 없을 때 유용합니다.

      Get-Mailbox -Anr "Adita"
      
Image

-SortBy

이 매개변수는 결과를 정렬할 속성을 지정합니다. 예를 들어 -SortBy DisplayName을 사용하면, 반환되는 사서함 목록이 사서함의 표시 이름(display name)을 기준으로 알파벳순으로 정리됩니다.

      Get-Mailbox -SortBy Name
      
Image

일반 매개변수

PowerShell의 다른 cmdlet과 마찬가지로 Get-Mailbox는 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable, -OutBuffer, -PipelineVariable, -OutVariable 같은 공통 매개 변수를 지원합니다. 이러한 매개 변수는 cmdlet 메시징을 제어하고, 오류와 경고를 처리하며, 스크립트와 함수에서 출력을 관리하는 데 도움이 됩니다.

cmdlet에서 사용할 수 있는 기타 매개 변수

-Archive: 보관(아카이브)이 사용 설정된 사서함을 반환합니다

-AuxAuditLog: 보조 감사 로그 사서함을 반환합니다

-Credential: 사용자 이름과 비밀번호를 지정합니다

-DomainController: 도메인 컨트롤러를 지정합니다

-GroupMailbox: Microsoft 365 그룹만 반환합니다

-IgnoreDefaultScope: 기본 받는 사람 범위를 무시합니다

-InactiveMailboxOnly: 비활성 사서함만 반환합니다

-IncludeInactiveMailbox: 비활성 사서함을 포함합니다

-MailboxPlan: 사서함 계획(mailbox plan)에 따라 결과를 필터링합니다

-Migration: 마이그레이션 대상 사서함을 반환합니다

-Monitoring: 모니터링 사서함을 반환합니다

-PublicFolder: 공개 폴더 사서함을 반환합니다

-ReadFromDomainController: 도메인 컨트롤러에서 정보를 읽어옵니다

-RemoteArchive: 원격 아카이브 사서함을 반환합니다

-Server: Exchange 서버로 결과를 필터링합니다

매개변수 결합하기

여러 매개변수를 결합해 쿼리를 더 정교하게 만들 수 있습니다. 다음은 몇 가지 예시입니다.

  • 아래 cmdlet은 수신자 유형이 “user”인 특정 데이터베이스의 모든 사용자 우편함을 가져옵니다.
      Get-Mailbox -Database "Test3" -RecipientTypeDetails UserMailbox
      
Image
  • 아래 cmdlet은 특정 사용자 지정 특성을 가진 모든 사서함을 가져오며, 모든 결과는 -ResultSize를 사용합니다.
      Get-Mailbox -Filter {CustomAttribute1 -eq “TeamA”} -ResultSize Unlimited
      
Image

Get-Mailbox cmdlet 출력물을 Select-Object cmdlet으로 파이핑하면, 아래 예제 cmdlet은 특정 OU에서 각 사서함의 표시 이름, 기본 SMTP 주소, 전송 할당량을 보여주는 맞춤 목록을 검색합니다. 이 형식은 보고서나 감사를 생성하는 데 특히 유용합니다.

  • 특정 OU의 사서함을 가져오고 표시 이름과 이메일 주소만 표시합니다.
      Get-Mailbox -OrganizationalUnit "OU=Versacorp,DC=MILKYWAY,DC=LOCAL" | Select-Object DisplayName,PrimarySmtpAddress
      
Image
  • 자세한 속성과 함께 모든 사서함 나열하기
      Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, ProhibitSendQuota
      
Image
  • 아래에 더 복잡한 예시가 나와 있습니다. 여러 cmdlet을 결합해 최근 90일 동안 액세스되지 않은 사서함(메일박스)을 식별합니다.
      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddDays(-90)}
      
a screenshot of a command line window showing the identity of barbara cole

사용 사례와 시나리오

Get-Mailbox와 해당 매개변수를 결합하면 이메일 시스템을 효율적으로 관리하고, 컴플라이언스를 준수하며, 보고 및 문제 해결을 지원할 수 있는 다양한 용도와 시나리오를 폭넓게 활용할 수 있습니다. 아래에는 몇 가지 사용 사례와 시나리오가 나와 있습니다.

사서함 감사 및 보고

조직의 정책을 준수하기 위해 사서함 크기, 할당량(쿼터), 사용량에 대한 보고서를 생성합니다. 아래 cmdlet은 결과를 생성하지 않으므로 Export-CSV cmdlet에서 제공하는 위치로 이동해 CSV 파일을 열면, 아래 스크린샷과 같이 보입니다.

      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select DisplayName, TotalItemSize, ItemCount, StorageLimitStatus | Export-Csv -Path "MailboxReport.csv"
      
Image

활성화되지 않았거나 고아(Orphaned) 메일박스 식별

특정 기간 동안 액세스되지 않은 메일박스를 찾아 비활성 상태이거나 고아(Orphaned) 메일박스일 수 있는 사례를 파악합니다. 이 시나리오는 더 이상 사용되지 않는 메일박스를 식별하여 메일 시스템을 정리하는 데 도움이 되며, 잠재적으로 리소스와 라이선스를 확보할 수 있습니다.

      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Where-Object {$_.LastLogonTime -lt (Get-Date).AddMonths(-6)} | Select DisplayName, LastLogonTime
      
Image

메일박스 구성 관리

전달(Forwarding)이 활성화되어 있거나 특정 메일박스 기능 등 특정 구성을 가진 메일박스를 나열합니다.

      Get-Mailbox -ResultSize Unlimited | Where {$_.ForwardingAddress -ne $null} | Select DisplayName, ForwardingAddress
      
Image

대량 관리

메일박스를 이동하거나 여러 메일박스에 대해 한 번에 메일박스 설정을 적용하는 등 일괄 작업을 수행합니다. 유지보수 작업의 일부로 모든 메일박스를 한 데이터베이스에서 다른 데이터베이스로 이동합니다.

      Get-Mailbox -Database "DB01" | New-MoveRequest -TargetDatabase "DB05"
      
Image

일괄 작업 및 위임

감사 목적에 따라 모든 공유 또는 위임 메일박스를 찾아보고, 해당 위임 사용자를 검토합니다.

      Get-Mailbox -RecipientTypeDetails SharedMailbox -Database “Test3” | Get-MailboxPermission | Where {$_.AccessRights -contains "FullAccess"}
      
Image

메일박스에 할당량 설정

필요에 따라 보내기 및 받기 할당량을 설정하려면 아래 cmdlet이 5GB 값으로 할당량을 설정할 수 있습니다. 필요에 따라 사용자의 값으로 변경해 사용할 수 있습니다.

      Get-Mailbox -Identity "JackRobert" | Set-Mailbox -ProhibitSendReceiveQuota "5GB"
      

위의 cmdlet은 출력은 생성하지 않지만 값을 설정합니다. 아래의 cmdlet을 사용하여 위의 cmdlet로 설정한 원하는 출력이 맞는지 확인할 수 있습니다.

      Get-Mailbox -Identity "JackRobert" | Select prohibitsendreceivequota
      
Image

문제 해결

초과된 할당량(쿼터)이 있는 메일함을 식별하는 등 메일함과 관련된 문제를 진단하고 해결합니다. 잠재적인 성능 문제를 해결하기 위해 전송 할당량을 초과한 메일함을 찾아보세요.

      Get-Mailbox -ResultSize Unlimited | Where-Object { $_.ProhibitSendQuota -ne $null -and $_.ProhibitSendQuota -lt 5GB } | Select-Object DisplayName,PrimarySmtpAddress,ProhibitSendQuota
      
Image

조직 구성 단위(OU) 관리

특정 조직 구성 단위(OU) 내의 메일함을 관리합니다. 예를 들어, 특정 설정이나 구성을 적용할 수 있습니다. “HR” OU에 있는 모든 메일함에 대해 구성 변경 사항을 검색하고 적용하세요.

      Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Set-Mailbox -MaxSendSize 50MB
      

위 cmdlet은 어떤 결과도 출력하지 않지만, 지정한 OU 내의 모든 사용자에 대해 메시지의 최대 전송 크기 값을 설정합니다. 설정이 올바르게 적용되었는지 확인하려면 아래 cmdlet을 사용하세요.

      Get-Mailbox -OrganizationalUnit "OU=Test,DC=MILKYWAY,DC=LOCAL " | Select MaxSendSize
      
Image

위임 액세스

관리 또는 지원 목적을 위해 사서함에 대한 액세스를 위임합니다. 특정 사서함 데이터베이스에 있는 모든 사서함에 대해 지원 사서함에 전체 액세스 권한을 부여하세요.

      Get-Mailbox -Database “Test3” | Add-MailboxPermission -User "administrator@milkyway.local" -AccessRights FullAccess
      
Image

사서함 할당량 설정 확인

사서함 할당량 설정을 확인하는 것은 중요합니다. 이를 통해 사용자가 조직에서 설정한 저장 한도를 초과하지 않도록 보장하여, 잠재적으로 이메일 기능에 영향을 줄 수 있는 문제를 예방할 수 있습니다.

메일박스 할당량(쿼터) 개요

메일박스 할당량(쿼터)은 메일박스가 사용할 수 있는 저장 공간의 양을 제한하는 데 사용됩니다. 이러한 할당량에는 아래 항목이 포함됩니다.

  • 경고 발행 할당량: 사용자의 메일박스가 저장 한도에 가까워지고 있음을 사용자에게 경고하는 임계값.
  • 보내기 금지 할당량: 사용자가 새 메시지를 보내는 것이 차단되는 임계값.
  • 보내기 및 받기 금지 할당량: 사용자가 새 메시지를 보내거나 받는 것이 차단되는 임계값.

특정 사서함의 쿼터 설정을 확인하려면 Get-Mailbox cmdlet 뒤에 사서함 식별자를 지정하면 됩니다. 그러면 쿼터 설정을 포함하여 사서함의 다양한 속성이 반환됩니다.

      Get-Mailbox -Identity "BarbaraCole" | Format-List IssueWarningQuota, ProhibitSendQuota, ProhibitSendReceiveQuota, UsedDatabaseQuotaDefaults
      
Image

환경 내 여러 개 또는 모든 사서함에 대해 쿼터 설정을 검토해야 하는 경우, 사서함 식별자를 지정하지 않고 Get-Mailbox cmdlet을 사용한 다음 관련 쿼터 속성을 출력하고 데이터를 CSV 파일로 내보낼 수 있습니다. 이를 통해 쿼터 구성 사항을 더 쉽게 분석하고 보고할 수 있습니다.

      Get-Mailbox -ResultSize Unlimited -Database “Test3” | Select-Object DisplayName,ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota
      
Image

예시 1: 모든 사서함의 요약 목록 반환

PowerShell을 사용하여 Exchange Online 또는 Exchange Server에서 모든 사서함의 요약 목록을 반환하려면 아래 cmdlet을 사용하세요.

아래 명령은 PowerShell 콘솔에 모든 사서함의 요약 정보를 표 형태로 출력합니다. 여기에는 표시 이름, 별칭, UPN, 생성 날짜, 기본 이메일 주소가 포함됩니다. 이 요약은 빠른 개요를 제공하므로 보고서나 감사에 유용하며, 또는 현재 Exchange 환경에 설정되어 있는 사서함을 파악하는 데도 도움이 됩니다.

      Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, Alias, UserPrincipalName, WhenCreated, PrimarySmtpAddress | Format-Table -AutoSize
      
Image

아래 cmdlet은 표시 이름과 기본 SMTP 주소와 함께 예: Database, ProhibitSendQuota, ProhibitSendReceiveQuota, IssueWarningQuota 등 몇 가지 추가 속성을 사용합니다.

      Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress,Database,ProhibitSendQuota,ProhibitSendReceiveQuota,IssueWarningQuota | Format-Table -Autosize
      
Image

예제2: 특정 데이터베이스에 있는 아카이브 메일박스의 요약 목록을 반환하기

Exchange Online 또는 Exchange Server에서 PowerShell을 사용해 특정 데이터베이스에 위치한 아카이브 메일박스의 요약 목록을 반환하려면 “Get-Mailbox and”와 “Get-MailboxStatistics” cmdlet을 조합해서 사용할 수 있습니다. 이 조합을 사용하면 호스팅 데이터베이스별로 메일박스를 필터링한 다음 각 메일박스가 아카이브를 갖고 있는지 확인할 수 있습니다. 아래는 이를 수행하는 방법입니다.

      Get-Mailbox -Database "Test3" -Archive | Get-MailboxStatistics -Archive | Select-Object DisplayName, TotalItemSize, ItemCount | Format-Table -AutoSize
      
Image

엄선된 관련 콘텐츠:

Get-Mailbox를 다른 cmdlet과 결합하기 (Get-Member, Select-Object, Format-List)

Get-Mailbox cmdlet을 Get-Member, Select-Object, Format-List와 같은 다른 PowerShell cmdlet과 함께 사용하면 우편함 정보를 더 효과적으로 검색, 확인, 서식 지정할 수 있습니다.

Get-Member

Get-Member cmdlet은 Get-Mailbox가 반환하는 개체의 속성과 메서드를 검사하는 데 사용됩니다. 이를 통해 선택 또는 서식 지정에 사용할 수 있는 어떤 속성이 있는지 확인하는 데 특히 유용합니다.

      Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Get-Member
      
Image

Select-Object

Select-Object cmdlet을 사용하면 출력에 포함할 속성을 지정할 수 있습니다. 이를 통해 우편함 정보를 필요에 맞게 구성한 보기(맞춤형 뷰)를 만들 수 있습니다.

      Get-Mailbox -ResultSize Unlimited | Select-Object DisplayName, PrimarySmtpAddress,Database
      
a computer screen shows a list of mailbox databases

Format-List

Format-List cmdlet은 출력을 목록 형태로 서식 지정하여 모든 속성과 해당 값을 표시합니다. 이는 우편함 개체의 속성을 자세히 확인하는 데 유용합니다.

      Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Format-List DisplayName, PrimarySmtpAddress, ProhibitSendQuota
      
Image

Get-Mailbox 및 Set-Mailbox를 사용한 일괄 작업

특정 우편함 쿼터를 설정하거나 보관 기능을 활성화/비활성화하는 것처럼 여러 우편함에 대해 우편함 설정을 업데이트하려고 합니다.

아래 명령은 “Test3”에 있는 모든 우편함을 찾아서 해당 쿼터 설정을 설정합니다. 각 우편함에 대해 ProhibitSendQuota, ProhibitSendReceiveQuota, IssueWarningQuota를 업데이트합니다.

      Get-Mailbox -ResultSize Unlimited | Where-Object { $_.Database -eq "Test3" } | Set-Mailbox -ProhibitSendQuota 5GB -ProhibitSendReceiveQuota 6GB -IssueWarningQuota 4GB
      
the command completed successfully but no settings of milkyway local have been modified

필터와 정렬 결과 사용

대량의 정보를 다룰 때는 데이터셋을 필요한 범위로 정확히 좁힐 수 있으며, 정렬을 통해 결과를 더 잘 분석하거나 보고할 수 있도록 출력 구성을 돕습니다. 아래 cmdlet은 Get-Mailbox에서 필터링 및 정렬 메커니즘을 사용하는 방법을 보여줍니다.

Get-Mailbox에서 필터 사용

필터링 cmdlet을 사용하면 명령 출력에 해당 기준과 일치하는 객체만 포함하도록 기준을 지정할 수 있습니다. -Filter 매개변수를 지원하는 cmdlet에 직접 필터를 적용하거나, 더 복잡하거나 지원되지 않는 필터링 시나리오에는 “Where-Object” cmdlet을 사용할 수 있습니다.

      Get-Mailbox -ResultSize Unlimited | Where-Object {$_.CustomAttribute1 -eq "TeamA" -and $_.DisplayName -like "Barb*"}
      
Image

Get-Mailbox로 결과 정렬하기

정렬은 데이터를 의미 있는 순서로 구성해 읽고 분석하기 쉽게 해줍니다. 정렬 목적에는 “Sort-Object” cmdlet을 사용할 수 있습니다. 이 명령은 모든 사서함을 가져와 표시 이름(display name) 기준으로 알파벳순 정렬을 수행합니다.

      Get-Mailbox -ResultSize 10 | Sort-Object DisplayName
      
Image

결과를 CSV로 내보내기

결과를 CSV 파일로 내보내려면 PowerShell에서 “Export-Csv” cmdlet을 제공합니다. 이 cmdlet은 파이프라인의 입력을 받아 지정한 CSV 파일에 기록합니다. 예를 들어 Exchange 사서함 목록을 크기와 사용 관련 세부 정보와 함께 내보내려면 아래 cmdlet을 사용할 수 있습니다. CSV 파일의 경로와 파일 이름은 -Path 매개변수에서 지정해야 합니다.

      Get-Mailbox -ResultSize Unlimited | Get-MailboxStatistics | Select-Object DisplayName, TotalItemSize, ItemCount | Export-Csv -Path "C:\Exports\MailboxDetails.csv" -NoTypeInformation
      

결과를 그룹화하고 서식 지정하기

결과를 그룹화하고 서식을 지정하면 데이터 출력의 가독성이 크게 향상됩니다. PowerShell은 Group-Object, Format-Table, Format-List 등과 같은 cmdlet을 제공하며, 이러한 목적에 사용할 수 있습니다.

결과 그룹화

Group-Object cmdlet은 속성 값에 따라 개체를 범주화하기 위한 것입니다. 예를 들어 부서나 사용자 지정 속성과 같은 특성별로 사서함을 정렬할 때 특히 유용할 수 있습니다.

      Get-Mailbox -ResultSize Unlimited | Group-Object -Property CustomAttribute1
      
Image

결과 서식 지정

데이터를 그룹화한 후이거나 어떤 데이터를 표시할 때든, 적절한 서식 지정은 출력물을 더 쉽게 이해할 수 있게 해줍니다. Format-Table은 흔히 “ft”라고 약칭하며, 데이터를 표 형식으로 표시합니다. 결과를 열(column) 단위로 확인하고 싶을 때 이상적입니다. 표시할 속성을 지정할 수 있으며 열 너비도 제어할 수 있습니다.

      Get-Mailbox -Identity "BarbaraCole@milkyway.local" | Format-Table DisplayName,UserPrincipalName,WhenCreated,PrimarySmtpAddress,database -AutoSize
      
Image

“Format-List” 사용

Format-List(약칭 “fl”)는 개체의 각 속성을 새 줄에 표시하므로, 표시할 개체가 적거나 개체의 속성이 많아 표에 잘 맞지 않을 때 자세히 확인하기에 적합합니다.

      Get-Mailbox -Identity "BarbaraCole" | Format-List DisplayName, PrimarySmtpAddress, EmailAddresses
      
barbara cole is displayed on the command line

Exchange Online에서 cmdlet 동작의 차이

Get-Mailbox cmdlet은 온프레미스 Exchange에서 사용할 때와 비교하여 Exchange Online에서 약간 다르게 동작합니다. 이러한 차이는 주로 Exchange Online의 클라우드 기반 아키텍처와 멀티 테넌트 구성에서 비롯되며, 그 결과 관리자가 사서함과 상호작용하는 방식과 cmdlet의 범위에 영향을 줍니다. 아래는 몇 가지 주요 차이점입니다.

  • Exchange Online에서는 전체 서비스 성능을 유지하기 위해 cmdlet 작업이 스로틀링(요청 제한)의 영향을 받을 수 있으며, 더 큰 환경에서는 스로틀링 한도를 피하기 위해 처리 시간이 더 오래 걸리거나 배치 처리가 필요할 수 있습니다.
  • Exchange Online에는 Office 365의 다양한 서비스를 수용하기 위해 더 많은 수신자 유형과 세부 정보가 포함되어 있으므로, 온프레미스 Exchange에는 존재하지 않는 클라우드 환경 전용 수신자 유형을 접하게 될 수 있습니다.
  • 온프레미스 Exchange에서 사용할 수 있는 일부 속성 및 특성은 호스팅 환경의 특성상 Exchange Online에 없거나 액세스할 수 없을 수 있습니다. Exchange Online 사서함은 라이선스 정보와 사서함 플랜과 같이 클라우드 환경과 관련된 추가 속성을 가질 수 있습니다.
  • Exchange Online의 기본 출력은 클라우드 관리를 위해 다르게 제공되며, 클라우드 관리자에게 더 관련성 높은 정보를 제공합니다. 기본적으로 표시되는 속성의 집합과 기본 제공 필터는 온프레미스 Exchange의 그것과 다를 수 있습니다.
  • Exchange Online의 멀티 테넌트 아키텍처로 인해 Get-Mailbox의 범위는 조직의 사서함으로 제한됩니다. 하이브리드 환경에서는 온프레미스 사서함을 관리하려면 관리자가 온프레미스 Exchange Management Shell을 사용해야 합니다.
  • Exchange Online은 다른 Office 365 서비스와 긴밀하게 통합되어 고급 보안 및 컴플라이언스 기능을 제공합니다. Get-Mailbox의 동작은 소송 보류(litigation hold), eDiscovery 또는 Advanced Threat Protection과 관련된 플래그나 속성과 같은 이러한 통합의 영향을 반영할 수 있습니다.

더 나은 성능을 위한 Get-EXOMailbox 사용

Get-EXOMailbox는 Exchange Online 환경에서 사용하도록 설계된 cmdlet입니다. 기존의 Get-Mailbox cmdlet에 비해 Exchange Online이 클라우드 기반이라는 특성에 맞춘 고유한 기능과 개선된 성능을 제공합니다. Get-EXOMailbox는 원격 연결을 통해 더 빠르게 실행되도록 최적화되어 있어 Exchange Online에서 사서함 정보를 검색하는 데 더 효율적입니다. 연결에는 최신 인증이 필요하며, 환경의 구성에 따라 다단계 인증(MFA)을 포함할 수 있습니다.

      Connect-ExchangeOnline -UserPrincipalName administrator@milkyway.com
      

아래는 “Get-EXOMailbox”를 일반적인 관리 작업에 어떻게 사용할 수 있는지 보여주는 몇 가지 예시입니다.

      Get-EXOMailbox -ResultSize Unlimited
      
Image

받는 사람 유형별로 필터링

      Get-EXOMailbox -RecipientTypeDetails SharedMailbox | Format-Table -Autosize
      
Image

보관 상태별로 필터링

      Get-EXOMailbox -Filter { ArchiveStatus -eq "Active" } Format-Table -Autosize
      

Office 365의 아카이빙은 프리미엄 기능입니다. 아래와 같이 출력 예시를 보여주기 위해 ArchiveStatus를 None으로 설정했습니다. 위의 cmdlet은 아카이빙이 활성화된 메일박스가 존재하는 경우에 작동합니다.

Image

특정 속성 선택

      Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName,PrimarySmtpAddress,UserPrincipalName
      
Image

표시 이름으로 정렬

      Get-EXOMailbox -ResultSize Unlimited | Select-Object DisplayName,UserPrincipalName | Sort-Object DisplayName
      
Image

Exchange Online용 Get-Mailbox 전용 파라미터

Get-Mailbox cmdlet에는 온프레미스 Exchange Server 구성과 비교했을 때 Exchange Online에만 전용이거나 클라우드 호스팅 환경에서 관련성이 있는 파라미터가 포함되어 있습니다. 이러한 전용 파라미터는 라이선스 처리, 비활성 메일박스 목록 표시, 소프트 삭제된 메일박스 검색 등 클라우드에서 메일박스를 관리할 때의 고유한 특징을 제공합니다.

-InactiveMailboxOnly

-InactiveMailboxOnly 매개 변수를 사용하면 결과를 비활성 사서함으로만 제한할지 여부를 선택할 수 있습니다. 이 스위치는 지정할 값을 필요로 하지 않습니다.
소프트 삭제되기 전에 소송 보류(litigation hold) 또는 제자리 보류(in-place hold)가 설정된 사서함은 비활성 상태로 간주됩니다.

-MailboxPlan

이 매개 변수는 명령에서 반환되는 사서함을 특정 사서함 계획(mailbox plan)에 연결된 사서함으로만 필터링합니다. 이 기능은 조직 내에서 부서나 역할별로 서로 다른 계획이 적용되는 등, 여러 사서함 계획이 운영되는 환경에서 특히 유용합니다.

-IncludeInactiveMailbox

이 매개변수는 결과에 비활성 사서함을 포함합니다. 비활성 사서함은 보통 삭제되었거나 프로비저닝이 해제된 사용자와 관련되어 있지만, 특히 컴플라이언스와 eDiscovery(전자 문서 검색)를 위해 데이터 보존 목적으로 일정 기간 유지됩니다.

-SoftDeletedMailbox

이 매개변수는 소프트 삭제된 사서함을 결과에 포함합니다. 소프트 삭제된 사서함은 Office 365 관리 센터 또는 PowerShell을 통해 사서함을 삭제하면 발생하지만, 복구를 허용하기 위해 일정 기간 동안 보관됩니다.

Get-Mailbox 모범 사례

Microsoft Exchange 환경에서 Get-Mailbox cmdlet을 사용하여 사서함을 관리할 때 모범 사례를 준수하면 최적의 성능, 보안 및 관리성을 확보할 수 있습니다. 아래는 고려할 만한 몇 가지 핵심 모범 사례입니다.

쿼리 범위를 제한하세요

필터를 사용하여 관심 있는 우편함만 결과에 포함되도록 범위를 좁히세요. 이렇게 하면 시스템에 가해지는 부하가 줄어들고 필요한 정보를 더 빠르게 얻을 수 있습니다. 특히 대규모 환경에서 “Get-Mailbox”를 실행할 때는 명령의 범위를 필요한 우편함으로 제한해 보세요. “-RecipientTypeDetails” 또는 “-OrganizationalUnit” 같은 매개 변수를 사용해 결과를 더 좁히고 Exchange 서버의 부하를 줄이십시오.

서버 측 필터링 사용

가능한 한 “Where-Object”로 클라이언트 측에서 필터링하기 위해 모든 개체를 메모리에 가져오는 대신, 서버 측에서 필터링을 수행하는 cmdlet 매개 변수를 사용하세요. 이렇게 하면 성능과 효율이 향상됩니다. 서버 측 필터링을 수행하려면 “-Filter” 매개 변수를 활용하십시오. 이 방식은 더 효율적이며 네트워크를 통해 전송되는 데이터 양을 줄입니다.

결과 크기 제한을 현명하게 사용

특히 대규모 환경에서는 “-ResultSize Unlimited” 매개변수를 사용할 때 주의하세요. 포괄적인 작업에는 필요할 수 있지만, 성능 문제로 이어질 수 있습니다. 대규모 작업은 더 작은 단위로 나누어 처리하는 방안을 고려해 보세요.

선택적 속성 검색

기본적으로 Get-Mailbox는 각 사서함에 대해 많은 속성을 가져오는데, 이는 항상 필요하지 않을 수 있습니다. 필요한 속성만 지정하려면 “-Properties” 매개변수를 사용하거나, 결과를 줄이려면 “Select-Object”를 사용하세요. 이렇게 하면 성능을 크게 향상시킬 수 있습니다.

와일드카드의 효율적 사용

필터에서 와일드카드(*)를 사용할 때는 이를 과도하게 또는 비효율적으로 사용하면 성능 문제로 이어질 수 있다는 점에 유의하세요. 쿼리 내에서 와일드카드를 신중하게 배치하여 가능한 한 효율적으로 작동하도록 하십시오.

다른 Cmdlet과 현명하게 조합하기

종종 “Get-Mailbox”는 사서함 수정이나 보고서 작성과 같은 작업을 위해 다른 cmdlet과 함께 사용됩니다. “Get-Mailbox”를 다른 cmdlet에 파이핑할 때는 불필요한 처리를 방지하기 위해 초기 “Get-Mailbox” 명령이 가능한 한 정확하게(타겟팅이 되도록) 설정되었는지 확인하세요.

RecipientTypeDetails의 영향 이해하기

이 매개변수는 특정 유형의 사서함(예: UserMailbox, SharedMailbox 등)을 타겟팅하는 데 매우 유용합니다. 이 매개변수를 효과적으로 이해하고 사용하면 더 정확한 작업을 수행하는 데 도움이 될 수 있습니다.

보안 및 컴플라이언스

“Get-Mailbox” 스크립트나 명령을 실행하여 민감한 정보가 노출될 수 있는 경우, 조직의 보안 정책을 준수하고 있는지 확인하세요. 이러한 스크립트와 그 출력 결과에 대한 접근 권한은 승인된 담당자만으로 제한해야 합니다.

스크립트를 테스트하고 검증하세요

“Get-Mailbox” 출력 결과를 바탕으로 변경을 수행하는 스크립트를 실행하기 전에, 특히 운영 환경에서는 비운영(테스트) 환경에서 스크립트를 충분히 테스트하세요. 의도하지 않은 영향이 발생하지 않도록 대상 메일박스 선택과 수행하려는 변경 사항을 검증해야 합니다.

스크립트를 정기적으로 검토하고 업데이트하세요

Exchange 환경이 변화하는 만큼 스크립트와 명령도 그에 맞게 발전해야 합니다. 가장 효율적인 방법을 사용하고 최신 모범 사례에 부합하도록 정기적으로 검토하고 업데이트하세요.

최신 상태 유지

Exchange용 PowerShell 세션 또는 모듈이 최신 상태인지 확인하세요. Microsoft는 Exchange Online용 PowerShell cmdlet을 정기적으로 업데이트하여 새로운 기능과 개선 사항을 제공하며, 이를 통해 스크립팅 역량을 향상시킬 수 있습니다.

Get-Mailbox 일반적인 문제 해결

Get-Mailbox cmdlet을 사용할 때 몇 가지 문제나 예상치 못한 동작을 겪을 수 있습니다. 아래에는 흔히 발생하는 문제와 이를 효과적으로 해결하기 위한 문제 해결 단계 및 솔루션이 정리되어 있습니다.

Cmdlet을 인식할 수 없음

“Get-Mailbox”가 cmdlet, 함수, 스크립트 파일 또는 실행 가능한 프로그램의 이름으로 인식되지 않는다는 오류 메시지를 받을 수 있습니다.

문제 해결 단계

  • Exchange Server의 경우 Exchange Management Shell에서 cmdlet을 실행하고 있는지 확인하거나, Exchange Online의 경우 “Connect-ExchangeOnline”을 사용해 Exchange Online PowerShell에 연결했는지 확인하세요.
  • Exchange Online의 경우 Exchange Online PowerShell 모듈이 설치되어 있으며 최신 상태인지 확인하세요.
  • PowerShell 세션을 확인하세요. 기본적으로 Exchange cmdlet을 로드하지 않는 세션에 있을 수 있습니다.

권한이 부족합니다

Exchange Online 또는 Exchange Server에 연결되어 있지만, “Get-Mailbox”를 실행하려고 할 때 권한 관련 오류가 발생하고 있습니다.

문제 해결 단계

  • 사용 중인 계정에 필요한 권한이 있는지 확인하세요(예: Exchange Online의 Exchange Admin 역할 또는 Exchange Server의 적절한 RBAC 역할).
  • Exchange Online의 경우, 계정에 필요하다면 다단계 인증(MFA)이 올바르게 설정되어 있는지 확인하세요.
  • Exchange Server에서는 계정에 “Get-Mailbox” 사용 권한이 명시적으로 부여되어 있는지 또는 작업을 허용하는 역할에 추가되어 있는지(예: Recipient Management 역할) 확인하세요.

불완전하거나 예상치 못한 결과

“Get-Mailbox” cmdlet은 오류 없이 실행되지만 불완전하거나 예상치 못한 결과를 반환합니다.

문제 해결 단계

  • “-ResultSize” 매개 변수를 사용하여 예상된 모든 사서함이 조회되고 있는지 확인하세요. 기본 설정으로는 모든 사서함이 반환되지 않을 수 있습니다.
  • “-Filter” 매개 변수를 사용해 쿼리를 구체화하여, 적용하려는 기준을 정확히 반영하도록 하세요.
  • 결과를 제한하고 있을 수 있는 서버 측 또는 클라이언트 측 필터링 옵션이 있는지 확인하세요.
  • Exchange Online의 경우, 스로틀링 정책으로 인해 명령 실행이 때때로 지연될 수 있습니다. 잠시 후 다시 시도해 보세요.

성능 문제

이 cmdlet은 실행에 시간이 오래 걸리며, 특히 많은 수의 사서함이 있는 환경에서는 더욱 그렇습니다.

문제 해결 단계

  • “ -ResultSize ”, “ -Filter ” 또는 “-OrganizationalUnit” 같은 다른 특정 매개변수를 사용해 쿼리 범위를 제한하면 결과를 좁히고 성능을 향상할 수 있습니다.
  • 처리해야 하는 사서함이 많은 경우 작업을 더 작은 배치로 나누는 것을 고려해 보세요.
  • Exchange Online의 경우 대규모 데이터 세트에 최적화된 Exchange Online Management Module의 최신 버전을 사용하고 있는지 확인하세요.

연결 문제

Exchange Online에서 “Get-Mailbox”를 사용하려고 하면 연결 문제가 발생할 수 있습니다.

문제 해결 단계

  • 인터넷 연결이 안정적인지 확인하세요.
  • Office 365 Service Health 대시보드를 확인하여 Exchange Online에 영향을 주는 진행 중인 서비스 장애가 없는지 확인하세요.
  • 세션 시간 초과 또는 네트워크 변경으로 인해 연결이 끊길 수 있으므로 “Connect-ExchangeOnline”을 사용해 Exchange Online에 대한 PowerShell 세션을 다시 설정하세요.

스크립트 실행 정책 제한

“Get-Mailbox” cmdlet을 포함하는 스크립트를 실행할 때 PowerShell 스크립트 실행 정책과 관련된 제한이 발생할 수 있습니다.

문제 해결 단계

  • “Get-ExecutionPolicy”를 사용해 현재 PowerShell 실행 정책을 확인하세요.
  • 필요한 경우, 보안에 미치는 영향을 고려하여 스크립트를 실행할 수 있도록 적절한 수준(예: RemoteSigned)으로 “Set-ExecutionPolicy”를 사용해 정책을 조정하세요.

초보자를 위한 Windows PowerShell 스크립팅 튜토리얼 (PDF)

자세히 알아보기

자주 묻는 질문(FAQ)

PowerShell에서 Get-Mailbox가 인식되지 않는 이유는 무엇인가요?

“Get-Mailbox not recognized” 오류는 PowerShell 세션에 Exchange Management Shell 모듈이 로드되지 않았기 때문에 발생합니다. 이 cmdlet은 Exchange Server에만 해당되며 제대로 동작하려면 적절한 모듈이 필요합니다. Exchange Online의 경우 Exchange Online PowerShell V2 모듈을 설치하고 연결해야 합니다:

      Install-Module ExchangeOnlineManagement
      

온프레미스 Exchange를 사용하는 경우, Exchange Management Shell에서 PowerShell을 실행하고 있거나 Exchange 모듈을 가져왔는지 확인하세요. 설치 후 다음을 사용해 연결합니다:

      # For cloud environments
Connect-ExchangeOnline

# For on-premises
Import-Module Exchange
      

cmdlet 이름도 버전에 따라 다릅니다. 대규모 환경에서는 Exchange Online이 더 나은 성능을 위해 Get-EXOMailbox를 사용하고, 기존(전통적인) Exchange는 Get-Mailbox를 사용합니다.

Exchange Online PowerShell에 연결하는 방법은?

Exchange Online PowerShell에 연결하려면 Exchange Online Management 모듈과 올바른 인증이 필요합니다. 먼저 관리자 권한이 있는 PowerShell 세션에서 모듈을 설치합니다:

Install-Module -Name ExchangeOnlineManagement

그런 다음 연결:

      Connect-ExchangeOnline
      

이 과정에서 Office 365 자격 증명을 묻는 메시지가 표시됩니다. 보안을 더 강화하려면 최신 인증을 사용하세요:

      Connect-ExchangeOnline -UserPrincipalName youradmin@domain.com -ShowProgress
      

멀티팩터 인증은 연결 과정에서 자동으로 처리됩니다. 연결이 완료되면 대규모 환경에서는 Get-Mailbox 대신 Get-EXOMailbox를 사용하면 성능이 더 좋습니다. 작업이 끝나면 항상 연결을 해제하세요:

      Disconnect-ExchangeOnline
      

이 연결 방법은 Exchange Online 관리 기능에 대한 전체 관리 권한을 제공합니다.

PowerShell로 사서함 권한을 확인하는 방법은 무엇인가요?

우편함 권한을 확인하려면 Get-Mailbox와 Get-MailboxPermission cmdlet을 함께 사용하여 포괄적인 액세스 정보를 가져와야 합니다. 이 명령을 사용하면 특정 우편함에 누가 액세스 권한이 있는지 확인할 수 있습니다:

      Get-MailboxPermission -Identity username@domain.com
      

여기에는 Full Access, Send As, Send on Behalf 권한이 표시됩니다. 대량 분석을 위해서는 Get-Mailbox 결과를 Get-MailboxPermission에 파이프하세요:

      Get-Mailbox | Get-MailboxPermission
      

출력에는 각 권한 항목에 대한 AccessRights, User, Deny 설정이 표시됩니다. 과도한 권한을 식별하려면 Where-Object를 사용해 결과를 필터링하세요:

      Get-MailboxPermission -Identity username@domain.com | Where-Object {$_.User -notlike "NT AUTHORITY*"}
      

이 방식은 누가 어떤 우편함 데이터에 액세스할 수 있는지에 대한 가시성을 제공하며, 이는 least privilege access 및 컴플라이언스 요구사항을 유지하는 데 매우 중요합니다.

메일박스 목록을 CSV로 내보내는 방법은?

우편함(메일박스) 목록을 CSV로 내보내려면 Get-Mailbox와 Export-CSV cmdlet을 함께 사용해 포괄적인 보고서를 생성합니다. 기본 내보내기는 다음과 같습니다:

      Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, RecipientTypeDetails | Export-CSV -Path "C:\MailboxList.csv" -NoTypeInformation
      

자세한 보고서를 위해 추가 속성을 포함하세요:

      Get-Mailbox | Select-Object DisplayName, PrimarySmtpAddress, TotalItemSize, ProhibitSendQuota, LastLogonTime | Export-CSV -Path "C:\DetailedMailboxList.csv" -NoTypeInformation
      

Select-Object cmdlet은 내보내기에 표시될 우편함(메일박스) 속성을 제어하고, Export-CSV는 파일 형식을 처리합니다. 대규모 환경에서는 성능 향상을 위해 Exchange Online에서 Get-EXOMailbox를 사용하는 것을 고려하세요. 특정 우편함 유형만 내보내려면 필터링을 추가합니다:

      Get-Mailbox | Where-Object {$_.RecipientTypeDetails -eq "UserMailbox"} | Export-CSV -Path "C:\UserMailboxes.csv" -NoTypeInformation
      

이 방법은 규정 준수 보고, 용량 계획, 보안 감사에 적합한 구조화된 데이터 파일을 생성합니다.

Get-Mailbox vs Get-EXOMailbox: 무엇을 사용해야 할까요?

Get-EXOMailbox는 Exchange Online 환경에서 Get-Mailbox를 대체하는 최신 방식으로, 대규모 조직에 대해 유의미하게 더 나은 성능을 제공합니다. Exchange Online에서 작업할 때는 Get-EXOMailbox를 사용하세요. 이는 클라우드 규모의 작업에 최적화되어 있으며 페이지네이션을 자동으로 처리합니다. 구문은 거의 동일하게 유지되지만, Get-EXOMailbox는 결과를 더 빠르게 처리하고 메모리 사용량도 더 적습니다. 온프레미스 Exchange Server에서는 Get-EXOMailbox가 기존 Exchange Management Shell에 존재하지 않으므로 반드시 Get-Mailbox를 사용해야 합니다. 하이브리드 환경에서는 각 환경에 맞는 cmdlet을 사용하세요. 즉, 클라우드 사서함에는 Get-EXOMailbox, 온프레미스 사서함에는 Get-Mailbox를 사용합니다. Microsoft는 모든 신규 Exchange Online 스크립트에 Get-EXOMailbox를 권장하며, 더 나은 성능과 향후 호환성을 위해 기존 스크립트를 점진적으로 마이그레이션할 것을 권장합니다.

공유하기

더 알아보기

저자 소개

Asset Not Found

Kevin Horvatin

수석 소프트웨어 아키텍트

Kevin Horvatin은 Netwrix의 수석 소프트웨어 아키텍트이며 Netwrix Privilege Secure를 담당하고 있습니다. 20년 넘게 소프트웨어 개발자로 일해 왔으며, PowerShell과 C#이 처음 소개된 시점부터 이를 다뤄 왔습니다.