Exchange Online 사서함 정보 반환

 

마지막으로 수정된 항목: 2014-06-09

요약: Windows PowerShell에서 Windows PowerShell cmdlet, 스크립트 및 일괄 프로세스를 사용하여 Office 365를 관리합니다.

Exchange Online 및 Windows PowerShell에서 수행할 수 있는 몇 가지 작업에 대해 알아보기 위해 사용자 사서함을 살펴보겠습니다. 아시다시피 단일 사용자 사서함에 대한 정보는 쉽게 확인할 수 있습니다. 예를 들어 Ken Myer의 사서함에 대한 몇 가지 정보를 반환하는 명령은 다음과 같습니다.

Get-Mailbox -Identity "Ken Myer"

이 명령은 다음과 비슷한 결과를 반환합니다.

Name      Alias       ServerName      ProhibitSendQuota
----      -----       ----------      -----------------
kenmyer   kenmyer     bn1pr02mb038    49.5 GB (53,150,220,288 bytes)

이 결과를 통해 Ken의 별칭, 메일 할당량 등을 파악할 수 있습니다. 그러나 Exchange Online 사서함에는 Get-Mailbox cmdlet에서 반환하는 4가지 속성보다 훨씬 더 많은 정보가 있습니다. 이 문서에서는 이러한 모든 정보에 액세스하는 방법에 대해 설명합니다.

방법은 다음과 같습니다.

Get-Mailbox -Identity "Ken Myer" | Select-Object *

Select-Object * 구문은 Get-Mailbox cmdlet이 반환할 수 있는 모든 정보를 반환하도록 Windows PowerShell에 지시합니다. 사용자 사서함의 경우에는 약 200개의 속성 및 속성 값이 반환됩니다. 앞에서도 살펴본 것처럼 Get-Mailbox –Identity "Ken Myer" 명령을 실행하면 Get-Mailbox cmdlet이 기본적으로 반환하는 일부 정보만 제공됩니다. 물론 Select-Object cmdlet을 사용하여 반환할 특정 속성 값 집합을 지정할 수도 있습니다. 예를 들어 Ken Myer의 소송 보존 관련 속성만 확인하려는 경우 다음과 같이 명령을 지정합니다.

Get-Mailbox -Identity "Ken Myer" | Select-Object DisplayName, LitigationHoldEnabled, LitigationHoldDate, LitigationHoldOwner, LitigationHoldDuration

이와 관련된 유용한 팁이 있습니다. Select-Object cmdlet으로 작업할 때는 와일드카드 문자를 사용할 수 있습니다. 예를 들어 모든 소송 보존 속성은 lit 문자로 시작합니다. 즉, 다음 명령을 사용하여 동일한 정보를 검색할 수 있습니다.

Get-Mailbox -Identity "Ken Myer" | Select-Object DisplayName, Lit*

이 명령은 Ken의 DisplayName 속성 값과 이름이 lit 문자로 시작되는 모든 속성의 값을 함께 검색하도록 Get-Mailbox에 지시합니다. 그러면 다음과 같은 정보가 반환됩니다.

DisplayName            : Ken Myer
LitigationHoldEnabled  : False
LitigationHoldDate     :
LitigationHoldOwner    :
LitigationHoldDuration : Unlimited

실제로 DisplayName 속성에도 와일드카드를 사용하여 명령을 더 짧게 만들 수도 있습니다.

Get-Mailbox -Identity "Ken Myer" | Select-Object Disp*, Lit*

그리고 다음과 같이 Lit*L*로 줄일 수 있습니다.

Get-Mailbox -Identity "Ken Myer" | Select-Object DisplayName, L*

그러나 이 경우에는 다음과 같이 L 문자로 시작되는 모든 속성 값이 반환된다는 단점이 있습니다.


DisplayName             : Ken Myer
Location                :
LitigationHoldEnabled   : False
LitigationHoldDate      :
LitigationHoldOwner     :
LitigationHoldDuration  : Unlimited
Languages               : {en-US}
LinkedMasterAccount     :
LastExchangeChangedTime :
LegacyExchangeDN        : /o=ExchangeLabs/ou=Exchange Administrative 
                          Group(FYDIBOHF23SPDLT)/cn=Recipients/
                          cn=44386eeefe7c4c2a92199aff4a2bc7b0-KenMyer

이처럼 실제로 필요한 것보다 많은 정보가 반환될 수 있습니다.

지금까지는 단일 사서함에 대한 정보를 확인하는 방법을 살펴보았습니다. 여러 사서함에 대한 정보도 반환할 수 있습니다. 다음과 같이 Identity 매개 변수를 비워 두면 됩니다.

Get-Mailbox 

또는 해당 데이터를 Select-Object cmdlet에 파이핑하여 지정된 몇 가지 속성 값을 반환할 수도 있습니다.

Get-Mailbox | Select-Object DisplayName, LitigationHoldEnabled

이 방식은 매우 편리하고 효율적입니다. 그런데 사서함 계정 중 일부만 확인하려는 경우도 있습니다. 예를 들어 소송 보존이 지정된 모든 사서함의 목록을 파악해야 하는 경우 해당 목록을 빠르게 반환할 수 있는 방법이 필요합니다. 모든 사서함 계정이 반환되어야 하는 경우에는 계정을 하나씩 순서대로 확인하여 소송 보존이 설정된 계정을 찾아야 하는데, 사용자 수가 많으면 이러한 방식은 시간이 오래 걸릴 수 있습니다. 따라서 다음과 같이 Get-Mailbox 명령에 필터를 추가하는 것이 보다 효율적입니다.

Get-Mailbox -Filter '(LitigationHoldEnabled -eq $True)'

이 경우 앞에서 Office 365 사용자 계정으로 작업할 때와 마찬가지로 반환된 사서함 정보를 Where-Object cmdlet에 파이핑할 수는 없을까요? 예를 들어 다음과 같은 명령도 정상적으로 작동한다고 생각될 수 있습니다.

Get-Mailbox | Where-Object {$_.LitigationHoldEnabled -eq $True}

이 명령이 "정상적으로 작동"하는지 여부는 상황에 따라 다릅니다. 위의 두 명령은 최종적으로는 정확히 동일한 정보를 반환하기는 합니다. 그러나 Where-Object cmdlet에 정보를 파이핑하는 경우에는 프로세스가 다음과 같이 진행됩니다.

  1. Get-Mailbox cmdlet이 서버에 연결되며 사용 가능한 사서함 정보를 모두 검색합니다.

  2. 모든 정보가 네트워크를 통해 로컬 컴퓨터로 전송됩니다.

  3. 정보가 로컬 컴퓨터에서 필터링되어 "초과" 데이터는 삭제됩니다.

Filter 매개 변수를 대신 사용하는 경우에는 다음 작업이 수행됩니다.

  1. Get-Mailbox cmdlet이 서버에 연결되며 해당 서버에서 사서함 정보가 필터링됩니다.

  2. 이와 같이 필터링된 정보(대개 전체 사서함 정보 중 극히 일부분)만 네트워크를 통해 로컬 컴퓨터로 전송됩니다.

다시 말해서 Filter 매개 변수를 사용하는 경우 서버에서 대부분의 작업이 수행되며 네트워크를 통해 전송해야 하는 정보의 양이 크게 감소합니다. 따라서 Filter 매개 변수를 지원하는 Office 365 cmdlet이 있으면 항상 Where-Object 대신 해당 매개 변수를 사용해야 합니다.

참고참고:
물론 필터에서 모든 속성 값을 사용할 수 있는 것은 아니므로 필터링 대상에 따라 다른 방식을 사용해야 합니다.

이 점을 염두에 두고 다른 필터링 예제를 살펴보겠습니다. 사서함에서 메일 전달을 사용하도록 설정한 사용자를 빠르게 확인하려는 경우를 예로 들어 보겠습니다. 이 경우 다음과 같은 명령을 사용할 수 있습니다.

Get-Mailbox -Filter '(DeliverToMailboxAndForward -eq $False)'

반환되는 데이터를 사용자의 표시 이름 및 해당 메일을 전달하는 주소만으로 제한하려는 경우 다음 명령을 사용합니다.

Get-Mailbox -Filter '(DeliverToMailboxAndForward -eq $True)' | Select-Object DisplayName, ForwardingSmtpAddress

또 다른 예로 모든 사용자가 정크 메일 규칙을 사용하도록 설정했는지 확인하려는 경우를 가정해 보겠습니다. 다음 명령을 사용하면 해당 규칙을 사용하도록 설정하지 않은 사용자가 있는지 빠르게 확인할 수 있습니다.

Get-Mailbox | Get-MailboxJunkEmailConfiguration | Where-Object {$_.Enabled -eq $False}
참고참고:
이 예에서는 Filter 매개 변수를 사용하지 않았습니다. 그 이유는 Get-MailboxJunkEmailConfiguration cmdlet이 Filter 매개 변수를 지원하지 않기 때문입니다.

다음으로는 정크 메일 규칙을 사용하도록 설정한 동시에 fabrikam.com을 수신 거부 및 도메인 목록에 포함한 사용자를 확인하려는 경우를 살펴보겠습니다. 이 경우에는 다음 명령을 사용합니다.

Get-Mailbox | Set-MailboxJunkEmailConfiguration -Enabled $True -BlockedSendersAndDomains @{Add="fabrikam.com"}

반대로 fabrikam.com이 차단된 목록에 포함되어서는 안 되는데 현재 포함되어 있는 사용자를 확인하여 차단된 목록에서 fabrikam.com을 제거하려는 경우도 있을 것입니다. 이 경우에는 다음 Windows PowerShell 명령을 사용합니다.

Get-Mailbox | Get-MailboxJunkEmailConfiguration | Where-Object {$_.BlockedSendersAndDomains -match "fabrikam.com"} | Set-MailboxJunkEmailConfiguration -BlockedSendersAndDomains @{Remove="fabrikam.com"}

경우에 따라서는 Exchange 관리 센터를 사용하여 이러한 모든 작업을 수행하는 것이 더 쉬울 수도 있습니다. 그러나 관리 센터를 사용하여 정크 메일을 관리하는 방법은 없습니다. 최소한 정크 메일 처리를 구성하려면 Windows PowerShell을 사용해야 합니다. 일정 설정, 맞춤법 검사 구성, 메시지 맺음말 및 사서함 작업 등의 다양한 작업 역시 Windows PowerShell을 통해 수행해야 합니다.


다음 항목: Exchange Online 보고서 작업

 
표시: