Exchange 관리 셸의 잠깐만

 

적용 대상: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

마지막으로 수정된 항목: 2007-08-24

이 항목에서는 모든 Exchange 관리 셸의 잠깐만 및 Microsoft Exchange Server 2007 도움말 항목 또는 기타 적절한 Microsoft 설명서와 관련된 사항에 대해 나열합니다. 잠깐만은 Exchange 관리 셸을 열 때마다 표시됩니다.

필요 시 잠깐만을 보려면 Exchange 관리 셸을 열고 Get-Tip cmdlet를 실행합니다.

관련 항목

Identity 매개 변수가 "위치 매개 변수"임을 알고 계십니까? 이는 다음과 같이 사용할 수 있다는 것을 의미합니다.

Get-Mailbox "domain\user" 대신: Get-Mailbox -Identity "domain\user"

사용하기 편리하고 간편한 바로 가기입니다.

경로에 있는 스크립트를 모두 반환하려면 다음과 같이 입력합니다.

Get-Command -Type ExternalScript

그리고 유용한 바로 가기를 사용하려면 프로파일에 다음과 같이 지정합니다.

Function Get-Scripts { Get-Command -Type ExternalScript }

작업을 할 때마다 긴 명령을 입력하는 것이 귀찮지 않습니까? 별칭을 지정하십시오. 다음과 같이 입력합니다.

Set-Alias GetSg Get-StorageGroup

현재 사용 중인 별칭을 모두 지정하려면 다음과 같이 입력합니다.

Get-Alias

사서함 데이터를 .pst 파일로 직접 내보내시겠습니까? Export-Mailbox cmdlet를 사용합니다. 하나의 명령으로 여러 사서함을 내보낼 수 있습니다. 다음과 같이 입력합니다.

Get-Mailbox | Export-Mailbox -PSTFolderPath <path to folder where data will be exported>

또한 Import-Mailbox cmdlet를 사용하여 .pst 파일을 사서함으로 가져올 수 있습니다. 다음과 같이 입력합니다.

Get-Mailbox | Import-Mailbox -PSTFolderPath <path to folder with <alias>.pst files to import>

사용자 지정 필터가 있는 동적 메일 그룹의 구성원을 확인하시겠습니까? Get-Recipient cmdlet를 사용하면 됩니다. 다음과 같이 입력합니다.

$DDG = Get-DynamicDistributionGroup "Contoso Marketing Managers"

Get-Recipient -RecipientPreviewFilter $DDG.RecipientFilter

Exchange 관리 셸도 계산기입니다. 명령줄에 다음과 같이 직접 입력해 보십시오.

1.2343+3123 or (23/435)*2

 

명령줄 응급 서비스 요청! 도움말이 필요하십니까? 다음과 같이 입력합니다.

Help <cmdlet-name> or <cmdlet-name> -?

다음과 같이 입력하면 도움말에 대해 와일드카드 문자 검색과 부분적인 이름 일치를 수행할 수도 있습니다.

Help *UM*

다음과 같이 입력하면 cmdlet에 대해 더 자세한 내용을 얻을 수 있습니다.

Get-Command <cmdlet-name>

cmdlet의 모든 매개 변수를 가져오는 빠른 바로 가기는 다음과 같이 입력합니다.

Get-Command <cmdlet-name> | Format-List Definition

또는 약식으로 다음과 같이 입력합니다.

Gcm <cmdlet-name> | Fl Def*

Unix 사용자는 물결표() 문자에 친숙합니다. 물결표는 루트 디렉터리에 대한 바로 가기를 나타냅니다. 물결표가 기본적으로 나타내는 것을 보려면 다음과 같이 입력합니다.

Dir ~

유용한 바로 가기로서 물결표를 다음과 같이 사용할 수 있습니다.

Cp SomeFile "~\My Documents"

사서함을 이동하시겠습니까? 다음과 같이 입력합니다.

Move-Mailbox

다음과 같이 SRV1 서버의 모든 사용자를 SRV2 서버로 이동할 수 있습니다.

Get-Mailbox -Server SRV1 | Move-Mailbox -TargetDatabase SRV2

CTRL+C는 Exchange 관리 셸에서 강제 중단 명령과 같습니다. 명령을 실행하는 데 시간이 너무 오래 걸리거나 작동을 빨리 취소하려면 CTRL+C를 눌러 실행을 중지합니다.

 

Pushd와 Popd는 cmd.exe에서 작동하는 것과 같은 방식으로 Exchange 관리 셸에서 작동합니다. 다음과 같이 입력합니다.

Pushd <location>

XML이 모든 것에 우선합니다. Exchange 관리 셸에서는 XML을 기본 형식으로 간주하므로 다음과 같이 흥미로운 작업을 수행할 수 있습니다.

$Sample = [XML](Get-Content SomeXMLFile.xml)

이 명령은 $Sample을 실제 XML 개체로 지정합니다. 샘플을 보려면 다음과 같이 입력합니다.

$Sample

샘플을 탐색하려면 다음과 같이 입력합니다.

$Sample.Prop1.Prop2

XML 데이터를 로드할 때 텍스트를 구문 분석할 필요가 없습니다.

"Config"로 끝나는 cmdlet는 서버별 또는 조직별로 하나씩 단일 구성을 관리합니다. 이러한 작업에서는 구성 인스턴스가 하나만 있기 때문에 ID를 지정할 필요가 없습니다. 서버별 구성이 있으면 Server 매개 변수를 지정해야 할 수도 있습니다.

Exchange 2007 서버에서 통합 메시징 사용 유형이 아닌 사용자 모두의 목록을 얻으려면 다음과 같이 입력합니다.

Get-UmMailbox | ForEach { If($_.UmEnabled -Eq $False){$_.Name}}

Exchange 2007 서버에서 통합 메시징 사용 유형인 사용자 모두의 목록을 얻으려면 다음과 같이 입력합니다.

Get-UmMailbox | ForEach { If($_.UmEnabled -Eq $True){$_.Name}}

테이블에서 사용자의 Exchange 2007 서버 이름과 내선 전화 번호 형식으로 지정된 사용자의 별칭을 표시하려면 다음과 같이 입력합니다.

Get-UmMailbox | Format-Table ServerName,@{e={$_.SamAccountName};Label="User Alias"},@{Expression="Extensions";Label="Telephone numbers"}

아웃바운드 호출에 대해 사용할 수 없도록 설정된 UM IP 게이트웨이 서버 이름 및 UM IP 게이트웨이 서버와 연결되는 헌트 그룹의 목록을 표시하려면 다음과 같이 입력합니다.

Get-UMIPGateway | ForEach {If($_.OutCallsAllowed -Eq $False){ "Gateway Name = " +$_.Name;ForEach ($HuntGroup In $_.Huntgroups){"Huntgroups " + $Huntgroup}}}

IP 차단 목록 공급자를 모두 테스트하려면 다음과 같이 Get-IpBlockListProvider cmdlet를 Test-IpBlockListProvider cmdlet로 파이프 처리해야 합니다.

Get-IpBlockListProvider | Test-IpBlockListProvider -IpAddress 192.168.0.1

Remove 동사를 사용하여 개체를 제거하기 전에 WhatIf 매개 변수를 사용하여 예상 결과를 확인합니다.

때때로 cmdlet의 출력을 기본 cmdlet와 상호 운용되는 문자열로 변환하는 것이 유용합니다. 예를 들어, 다음과 같이 입력합니다.

Get-Command | Out-String | Findstr "command"

perfmon 카운터 및 로컬 컴퓨터 구성과 같은 Win32 WMI 정보를 모두 얻으십시오. 예를 들어, 다음과 같이 입력합니다.

Get-WMIObject Win32_PerfRawData_PerfOS_Memory

스팸이 귀찮으십니까? 누구나 그렇습니다. 아래 두 명령을 실행하면 Exchange 관리 셸에서 RBL(실시간 차단 목록) 공급자를 구성할 수 있습니다.

Set-IPBlockListProvidersConfig -Enabled $True -ExternalMailEnabled $True

그런 다음 아래 명령을 실행합니다.

Add-IPBlockListProvider -Name <Name of RBL Provider> -LookupDomain <FQDN of RBL Provider> -AnyMatch $True

Exchange 관리 셸에서 이벤트 로그에 액세스하십시오. 이벤트 로그를 모두 검색하려면 다음과 같이 실행합니다.

Get-EventLog Application | Format-List

Exchange 관련 이벤트를 모두 검색하려면 다음과 같이 실행합니다.

Get-EventLog Application | Where { $_.Source -Ilike "*Exchange*" }

Exchange 관리 셸의 한 가지 장점은 cmdlet를 통해 콘솔로 개체를 내보낼 수 있다는 것입니다. 그러면 이러한 출력을 조작하여 흥미로운 방식으로 구성할 수 있습니다. 예를 들어, 표 형식의 빠른 보기를 얻으려면 Format-Table을 다음과 같이 사용합니다.

Get-Mailbox | Format-Table Name,Database,RulesQuota

속성 이름을 잊어버리셨습니까? 지정하는 이름의 일부와 일치하는 속성을 모두 검색하기 위해 와일드카드 문자를 사용할 수 있으므로 문제가 되지 않습니다.

Get-Mailbox | Format-Table Name,*SMTP*

CSV 파일에 있는 데이터를 사용하여 작업하시겠습니까? Import-CSV를 사용하여 개체에 데이터를 할당합니다. 예를 들어, 다음과 같이 입력합니다.

$MyCSV = Import-CSV TestFile.CSV

그러면 Exchange 관리 셸에서 데이터를 쉽게 조작할 수 있습니다. 예를 들어, CSV 데이터에 Mailboxes라는 열이 있으면 아래와 같은 명령으로 Mailboxes 열을 기준으로 데이터를 정렬하거나 그룹화할 수 있습니다.

정렬하려면 $MyCSV | Sort Mailboxes 를 사용합니다.

그룹화하려면 $MyCSV | Group Mailboxes를 사용합니다.

아래 명령에서는 모든 사서함 서버를 훑어 사서함 저장소 중 하나에서 고유하게 식별되지만 연결이 끊어진 사서함을 모두 다시 연결합니다.

Get-ExchangeServer | `

Where { $_.IsMailboxServer -Eq '$True' } `

| ForEach { Get-MailboxStatistics -Server $_.Name `

| Where { $_.DisconnectDate -NotLike '' } `

| ForEach { Connect-Mailbox -Identity `

$_.DisplayName -Database $_.DatabaseName} }

탭 종료를 사용하면 cmdlet를 끝내는 데 필요한 키 입력 횟수가 줄어듭니다. 입력하고 있는 cmdlet를 끝내려면 TAB 키만 누릅니다. 탭 종료는 입력에 하이픈(-)이 있을 때마다 사용됩니다. 예를 들면,

Get-Send<tab>

이 구문은 Get-SendConnector로 끝나야 합니다. 다음과 같은 정규식도 사용할 수 있습니다.

Get-U*P*<tab>

이 cmdlet를 입력할 때 TAB 키를 누르면 통합 메시징 사서함 정책 cmdlet와 같은 식과 일치하는 모든 cmdlet가 차례로 순환됩니다.

연구실에 있는 테스트 사용자에 대한 그룹을 만드시겠습니까? 다음과 같은 명령을 사용합니다.

1..100 | ForEach { Net User "User$_" MyPassword=01 /ADD /Domain; Enable-Mailbox "User$_" -Database <MailboxDatabaseName> }

Outlook Web Access 가상 디렉터리에 대한 인증 설정을 변경하시겠습니까? 예를 들어, 다음과 같은 명령을 시도해 보십시오. 이 명령은 인증을 폼 기반 인증에서 Windows 인증으로 변경합니다.

Set-OwaVirtualDirectory -Identity "OWA (Default Web Site)" -FormsAuthentication 0 -WindowsAuthentication 1

Outlook Web Access 가상 디렉터리의 전부 또는 일부에 대한 속성을 설정하시겠습니까? Get-OwaVirtualDirectory의 출력을 Set-OwaVirtualDirectory cmdlet에 파이프합니다. 예를 들어, 아래 명령은 모든 Outlook Web Access 가상 디렉터리에 대해 Gzip 수준을 설정합니다.

Get-OwaVirtualDirectory | Set-OwaVirtualDirectory -GzipLevel High

사용자의 장치 목록에서 ActiveSync 장치를 제거하시겠습니까? 다음과 같이 입력합니다.

Remove-ActiveSyncDevice

이 cmdlet는 서버와 제대로 동기화되지 않는 장치의 문제를 해결하는 데 유용합니다.

모바일 장치에서 모든 데이터를 지우시겠습니까? 다음과 같이 입력합니다.

Clear-ActiveSyncDevice

장치를 지울 시간을 지정하거나 다음 번에 해당 장치가 서버에 연결될 때 이 작업을 수행하도록 합니다.

사용자의 사서함과 동기화되는 모든 장치에 대한 목록을 보시겠습니까? 다음과 같이 입력합니다.

Get-ActiveSyncDeviceStatistics

장치 이름, 운영 체제 및 마지막 동기화 시간을 포함한 다양한 정보가 반환됩니다.

사용자 중 한 사람이 모바일 장치 동기화 암호를 복구하도록 요청했습니까? 사용자 암호를 반환하려면 다음과 같이 입력합니다.

Get-ActiveSyncDeviceStatistics -ShowRecoveryPassword

저장소 그룹 경로를 다른 위치로 이동하시겠습니까? 다음과 같이 입력합니다.

Move-StorageGroupPath -LogFolderPath DestLogFolder

데이터를 이동하지 않고 경로 설정만 변경하려면 ConfigurationOnly 매개 변수와 함께 이 명령을 사용합니다. 이 명령은 재해 복구에 특히 유용합니다.

경고

이 cmdlet를 잘못 사용하면 데이터가 손실됩니다.

데이터베이스 경로를 다른 위치로 이동하시겠습니까? 다음과 같이 입력합니다.

Move-DatabasePath -EdbFilePath DestFileName

데이터를 이동하지 않고 파일 경로 설정을 변경하려면 ConfigurationOnly 매개 변수와 함께 이 명령을 사용합니다. 이 명령은 재해 복구에 특히 유용합니다.

경고

이 cmdlet를 잘못 사용하면 데이터가 손실됩니다.

특정 통합 메시징 다이얼 플랜에서 전화 걸기 제한을 설정하려면 다음과 같이 입력합니다.

$Dp = Get-UmDialPlan -Identity <Your_DialPlan_Identity>

$Dp.ConfiguredInCountryGroups.Add("Group1,91xxxxxxxxxx,91xxxxxxxxxx")

$Dp.ConfiguredInCountryGroups.Add("Group1,9xxxxxxxxxx,91xxxxxxxxxx")

$Dp.ConfiguredInCountryGroups.Add("Group1,9xxxxxxx,9xxxxxxx")

$Dp.AllowedInCountryGroups.Add("Group1")

$Dp.OutsideLineAccessCode = 9

$Dp | Set-UmDialPlan

사서함 그룹에 새 기본 SMTP 주소를 추가하는 쉬운 방법이 필요하십니까? 아래 명령은 회사 필드에 Contoso를 포함하고 있는 모든 사서함의 기본 SMTP 주소에 @contoso.com 도메인을 지정하는 전자 메일 주소 정책을 새로 만듭니다.

New-EmailAddressPolicy -Name Contoso -RecipientFilter {Company -Eq "Contoso"} -EnabledPrimarySMTPAddressTemplate "@contoso.com"

비슷한 ID를 가지고 있는 개체 그룹을 검색하시겠습니까? Identity 매개 변수와 함께 와일드카드 문자를 사용하면 여러 개체를 일치시킬 수 있습니다. 다음과 같이 입력합니다.

Get-Mailbox *John*

Get-ReceiveConnector *toso.com

Get-JournalRule *discovery*

비슷한 ID를 가지고 있는 개체 그룹을 구성하시겠습니까? Getcmdlet를 사용하고 출력을 Set cmdlet에 파이프할 때 Identity 매개 변수와 함께 와일드카드 문자를 사용할 수 있습니다. 다음과 같이 입력합니다.

Get-Mailbox *John* | Set-Mailbox -ProhibitSendQuota 100MB

이 명령은 모든 사서함을 사서함 ID에 있는 "John"이라는 이름과 일치시키고 ProhibitSendQuota 매개 변수를 100MB로 설정합니다.

대부분의 cmdlet에서는 관련 개체를 보거나 수정하기 위해 한 명사의 출력을 다른 명사로 전달할 수 있습니다. 예를 들어, 서버의 특정 사서함 데이터베이스에 있는 모든 사서함에 대해 사서함 제한을 설정할 수도 있습니다. 이렇게 하려면 아래 명령을 사용하면 됩니다.

Get-MailboxDatabase "Executives" | Get-Mailbox | Set-Mailbox -ProhibitSendQuota 300MB

이 명령은 "Executives" 사서함 데이터베이스에 있는 모든 사서함을 검색하여 ProhibitSendQuota 값을 300MB로 설정합니다.

cmdlet에 사용할 수 있는 매개 변수를 잊어버리셨습니까? 단지 탭 종료를 사용하면 됩니다. 다음과 같이 입력합니다.

Set-Mailbox -<tab>

하이픈(-)을 입력한 후 Tab 키를 누르면 cmdlet에 사용할 수 있는 모든 매개 변수가 차례로 순환됩니다. 검색 범위를 좁히시겠습니까? 매개 변수 이름의 일부를 입력한 후 Tab 키를 누르고 다음과 같이 입력합니다.

Set-Mailbox -Prohibit<tab>

이제 Ping 대신에 Test-MapiConnectivity를 사용합니다. Test-MapiConnectivity는 사용자와 서버 간의 연결 문제를 해결하는 데 사용됩니다. 정보를 직접 조사할 필요 없이 특정 문제에 집중하려면 다음과 같이 다양한 cmdlet와 Test-MapiConnectivity를 함께 사용합니다.

사서함: Get-Mailbox <Mailbox Name> | Test-MapiConnectivity

사서함 데이터베이스: Get-MailboxDatabase <Database Name> | Test-MapiConnectivity

서버: Get-MailboxServer <Server Name> | Test-MapiConnectivity

비슷한 이름을 가지고 있는 여러 메일 그룹에 별칭을 추가하시겠습니까? 다음과 같이 입력합니다.

Get-DistributionGroup *Exchange* | Add-DistributionGroupMember -Member kim

이 명령은 "Exchange"라는 단어를 포함한 모든 메일 그룹에 "kim"이라는 별칭을 추가합니다.

Exchange 관리 셸을 사용할 때 발생하는 상황을 정확하게 기록하시겠습니까? Start-Transcript cmdlet를 사용합니다. 이 cmdlet를 실행한 이후에 수행되는 작업은 모두 지정한 텍스트 파일에 기록됩니다. 세션 기록을 중지하려면 Stop-Transcript cmdlet를 사용합니다.

Start-Transcript cmdlet는 기본적으로 대상 텍스트 파일을 덮어씁니다. 기존 파일에 세션을 추가하려면 Append 매개 변수를 사용합니다.

Start-Transcript c:\MySession.txt -Append

 

지정된 횟수만큼 명령을 반복하는 데 편리한 팁이 있습니다. For 루프를 쓰는 대신 아래 구문을 사용합니다.

1..10 | ForEach { "do something here" }

예를 들어, 아래 명령은 sg1에서 sg10까지의 이름을 가지는 10개의 새 저장소 그룹을 TestServer 서버에 만듭니다.

1..10 | ForEach { New-StorageGroup -Name "sg$_" -server TestServer }

사서함 데이터베이스가 마지막으로 백업된 시기를 확인하시겠습니까? 다음과 같이 입력합니다.

Get-ExchangeServer | Get-MailboxDatabase -Status | Format-Table Name, *Back*

한 사서함 데이터베이스의 모든 사서함을 다른 사서함 데이터베이스로 이동하시겠습니까? 이렇게 하려면 아래 명령을 사용하면 됩니다.

Get-MailboxDatabase <Source Mailbox Database> | Get-Mailbox | Move-Mailbox -TargetDatabase <Destination Mailbox Database>

Get-MailboxDatabase cmdlet에 와일드카드 문자를 사용해도 여러 원본 사서함 데이터베이스의 사서함을 단일 대상 사서함 데이터베이스로 통합할 수 있습니다.

네트워크 액세스 권한이 있지만 Exchange 조직 외부에서 외부 메일 계정을 유지하는 사용자가 있습니까? Exchange Server 2007에서는 Active Directory 정식 계정이지만 메일 사용이 가능한 연락처처럼 작업하는 메일 사용이 가능한 사용자를 만들 수 있습니다. Enable-MailUser cmdlet를 사용하면 Exchange 서버에 사서함이 아직 없는 기존 Active Directory 사용자에게 전자 메일 연락처 특성을 추가할 수 있습니다. 그러면 Exchange 조직의 사용자들이 해당 사용자의 외부 메일 계정으로 전자 메일 메시지를 보낼 수 있게 됩니다. 다음과 같이 입력합니다.

Enable-MailUser -Identity <Active Directory Alias> -ExternalEmailAddress <Destination SMTP Address>

사서함 데이터베이스의 기본 보내기 금지 할당량을 변경하시겠습니까? 다음과 같이 입력합니다.

Set-MailboxDatabase <Mailbox Database Name> -ProhibitSendQuota <New Quota Size>

ProhibitSendQuota 매개 변수를 사용할 때 바이트 한정자를 지정할 수 있습니다. 예를 들어, 보내기 금지 할당량을 200MB로 설정하려면 다음과 같이 입력합니다.

ProhibitSendQuota 200MB

또한 IssueWarningQuota 매개 변수와 ProhibitSendReceiveQuota 매개 변수를 같은 방식으로 구성할 수도 있습니다.

각 서버에서 실행하고 있는 Exchange Server 버전을 확인하시겠습니까? 다음과 같이 입력합니다.

Get-ExchangeServer | Format-Table Name, *Version*

아직 올바른 제품 키로 구성되지 않은 Exchange 2007 서버와 이 서버의 평가판 사용 기간에 대한 만료 여부를 확인하시겠습니까? 다음과 같이 입력합니다.

Get-ExchangeServer | Where { $_.IsExchange12TrialEdition -Eq $true } | Format-Table Name, *Trial*

서버에서 Exchange Server 2007 Standard Edition과 Exchange Server 2007 Enterprise Edition 중 어느 것이 실행되고 있는지 확인하시겠습니까? 다음과 같이 입력합니다.

Get-ExchangeServer <Server Name> | Format-Table Name, Edition

모든 Exchange 서버에서 실행되고 있는 버전을 보려면 <Server Name> 매개 변수를 사용하지 마십시오.

회의실을 예약하는 데 사용될 수 있는 새 리소스 사서함을 만드시겠습니까? 다음과 같이 입력합니다.

New-Mailbox -Name <Conference Room Name> -UserPrincipalName <SMTP Address> -Database <Mailbox Database> -OrganizationalUnit <Organizational Unit> -Room

이 명령은 사용자들이 보낸 모임 요청을 수락하는 사서함을 가지고 있지만 사용하지 않도록 설정된 Active Directory 사용자를 만듭니다.

모든 아웃바운드 전자 메일 메시지에 고지 사항을 추가하시겠습니까? 다음과 같이 입력합니다.

$Condition = Get-TransportRulePredicate FromScope

$Condition.Scope = "InOrganization"

$Condition2 = Get-TransportRulePredicate SentToScope

$Condition2.Scope = "NotInOrganization"

$Action = Get-TransportRuleAction ApplyDisclaimer

$Action.Text = "Sample disclaimer text"

New-TransportRule -Name "Sample disclaimer" -Condition @($Condition, $Condition2) -Action @($Action)

특정 도메인으로 보내는 전자 메일 메시지의 속성을 제어하시겠습니까? RemoteDomain cmdlet를 사용합니다. New-RemoteDomain cmdlet를 사용하여 새 원격 도메인을 만듭니다. 다음과 같이 입력합니다.

New-RemoteDomain -Name "Contoso.com Configuration" -DomainName contoso.com

그런 다음 Set-RemoteDomain cmdlet를 사용하여 이 원격 도메인에 대해 원하는 속성을 수정합니다.

Set-RemoteDomain "Contoso.com Configuration" -AutoReplyEnabled $True -AutoForwardEnabled $True

Set-OwaVirtualDirectory cmdlet를 사용하면 Outlook Web Access 사용자가 사용할 수 있는 기능을 제어할 수 있습니다. 다음과 같이 입력합니다.

Set-OwaVirtualDirectory "OWA (Default Web Site)" -ContactsEnabled $True -ChangePasswordEnabled $True

Booleans는 $True 또는 $False로 평가될 수 있는 매개 변수입니다. 일반적으로 Booleans는 개체에서 해당 개체의 작업을 수정하는 플래그로 사용됩니다. Exchange 관리 셸에서 Boolean 매개 변수는 $True, $False, 1 또는 0과 함께 사용되어야 합니다. True 또는 False를 포함한 다른 값은 허용되지 않습니다. 예를 들어, 아래의 두 명령은 모두 ExternalDsnSendHtml 매개 변수를 $True로 설정합니다.

Set-TransportServer <Server Name> -ExternalDsnSendHtml $True

Set-TransportServer <Server Name> -ExternalDsnSendHtml 1

NDR(배달 못 함 보고서)을 생성하지 않고 서버 큐에서 특정 도메인 이름으로 보낸 전자 메일 메시지를 모두 제거하시겠습니까? 다음과 같이 입력합니다.

Remove-Message -WithNDR $False -Filter { FromAddress -Like "*@contoso.com" }

여러 데이터베이스와 서버에 대해 삭제된 항목 보존 제한을 쉽게 적용하는 방법을 원하십니까? 지정한 서버의 모든 데이터베이스에 대해 삭제된 항목 보존을 구성하려면 다음과 같은 명령을 사용합니다.

Get-MailboxDatabase -Server <Server Name> | Set-MailboxDatabase -ItemRetention 45.00:00:00

또한 조직의 모든 서버에 대해 삭제된 항목 보존 제한 또는 사서함 보존 제한을 동일하게 적용할 수도 있습니다.

Get-MailboxDatabase | Set-MailboxDatabase -ItemRetention 45.00:00:00 -MailboxRetention 120.00:00:00

특정 사서함에 대해 Active Directory 사용자 계정이 가지고 있는 사용 권한을 확인하시겠습니까? 다음과 같이 입력합니다.

Get-Mailbox <Mailbox to Check> | Get-MailboxPermission -User <Active Directory User>

특정 Active Directory 사용자가 사용 권한을 가지고 있는 사서함을 확인하시겠습니까? 다음과 같이 입력합니다.

Get-Mailbox -ResultSize Unlimited | Get-MailboxPermission -User <Active Directory User> | Format-Table Identity, AccessRights, Deny

주의: 이 명령은 조직의 모든 사서함을 열거합니다. 사서함의 개수가 많으면 특정 사서함을 대상으로 지정할 수도 있습니다.

조직에 있는 모든 사서함 데이터베이스의 백업 상태에 대한 목록을 보시겠습니까? 다음과 같이 입력합니다.

Get-MailboxDatabase -Status | Format-Table Name, Server, *Backup*

특정 서버에 있는 사서함의 백업 상태만 보려면 어떻게 해야 합니까? 다음과 같이 입력합니다.

Get-MailboxDatabase -Server <Server Name> -Status | Format-Table Name, *Backup*

Exchange Server나 데이터베이스의 현재 상태를 검색하려면 Status 매개 변수를 사용합니다. 예를 들면,

Get-ExchangeServer -Status | Format-List

Get-MailboxDatabase -Server <Server Name> -Status | Format-List

모든 사서함 데이터베이스의 탑재 상태를 보시겠습니까? 다음과 같이 입력합니다.

Get-MailboxDatabase -Status | Format-Table Name, Server, Mounted

서버 쪽 필터링과 클라이언트 쪽 필터링 간 차이점은 무엇입니까? 서버 쪽 필터링은 받는 사람 및 큐 cmdlet와 함께 사용되며 이러한 cmdlet는 대량의 결과 집합을 반환하기 때문에 Filter 매개 변수를 지원합니다. 서버에서 사용자가 지정한 조건으로 결과를 필터링한 다음, 이 사용자에게 필터링된 결과를 보냅니다. 클라이언트 쪽 필터링에는 어떤 cmdlet도 사용할 수 있습니다. 전체 결과 집합은 클라이언트 컴퓨터로 보내진 다음 이 컴퓨터에서 데이터를 필터링하여 필터링된 결과 집합을 제공합니다. 클라이언트 쪽 필터링에서는 Where-Object cmdlet를 사용하며, 약식으로 Where도 사용할 수 있습니다.

Exchange Server 2007 통합 메시징(UM)을 사용하면 특정 내선 전화 번호에 대해 인증되지 않은 호출자를 전화를 건 내선 전화 대신 교환원에게 리디렉션할 수 있습니다. UM에서 인증되지 않은 호출자를 사용자 대신 교환원에게 전송하게 되는 사용자를 나열하려면 다음과 같이 입력합니다.

Get-UMMailbox | `

Where-Object { $_.AllowUMCallsFromNonUsers -eq `

[Microsoft.Exchange.Data.Directory.Recipient.AllowUMCallsFromNonUsersFlags] "None" }

클라이언트 쪽 필터링을 사용하면 표시하거나 사용할 데이터만 반환할 수 있습니다. 다음 예제는 Engineering 부서에 있는 모든 Active Directory 사용자 계정을 검색하여 두 열, 즉 NameDepartment가 있는 표에 결과를 입력합니다. Get-User cmdlet는 ResultSize 매개 변수를 사용하여 결과 집합을 최대 2,000명의 사용자로 제한합니다.

Get-User -ResultSize 2000 | Where { $_.Department -Eq "Engineering" } | Format-Table Name, Department

특수한 $_ 변수는 파이프라인의 한 cmdlet에서 다른 cmdlet로 개체가 전달될 것임을 나타냅니다. $_ 변수는 셸에서 자동으로 시작되며 현재 파이프라인 개체에 바인딩됩니다. 다른 개체의 속성에 액세스하는 것처럼 $_ 변수에 지정된 개체의 속성에 액세스할 수 있습니다. 다음 예제는 파이프라인을 통해 전달되는 각 사서함 개체의 Name 속성을 표시할 수 있는 방법을 보여줍니다.

Get-Mailbox | ForEach { $_.Name }

Import-Csv cmdlet를 사용하면 CSV 파일을 가져와서 개체로 처리할 수 있습니다. CSV 파일에서 각 행은 한 배열의 요소가 되며, 각 열은 속성이 됩니다. CSV 파일을 변수로 지정하거나 CSV 파일의 내용을 다른 cmdlet에 직접 파이프할 수 있습니다. 다음 예제의 CSV 파일에는 ForEach cmdlet로 차례로 순환되는 몇 개의 행과 함께 세 개의 열, 즉 Name, AliasEmailAddress가 있습니다. 각 행의 데이터는 새 메일 연락처를 만드는 데 사용됩니다.

Import-Csv | ForEach { New-MailContact -Name $_.Name -Alias $_.Alias -ExternalEmailAddress $_.EmailAddress -OrganizationalUnit Users }

Exchange 관리 셸 프로필을 사용자 지정하시겠습니까? Microsoft.PowerShell_profile.ps1 파일의 위치를 확인하려면 아래 명령을 실행합니다.

$Profile

PSConfiguration 폴더와 Microsoft.PowerShell_profile.ps1 파일을 만들어야 할 수도 있습니다. 폴더와 파일을 만든 후에는 Exchange 관리 셸이 열릴 때마다 로드되는 즐겨찾기 기능과 별칭을 추가할 수 있습니다.

조직의 모든 사서함에서 개인 전자 메일 폴더의 최대 크기를 10MB로 강제로 적용하는 관리되는 폴더 정책을 구성하려면 다음과 같은 명령을 사용합니다.

New-ManagedFolder -Name "Reference e-mail folder with 10mb quota" -FolderName "Personal and Reference E-mail" -StorageQuota 10MB

New-ManagedFolderMailboxPolicy "Personal Folder Policy" -ManagedFolderLinks "Reference e-mail folder with 10mb quota"

Get-Mailbox -ResultSize Unlimited | Set-Mailbox -ManagedFolderMailboxPolicy "Personal Folder Policy"

Set-MailboxServer <Server Name> -ManagedFolderAssistantSchedule "Sun.12:00-Sun.11:00"

명령을 실행할 때 발생하는 모든 상황을 확인하시겠습니까? 명령에 Verbose 매개 변수를 포함합니다. 이 매개 변수는 서버에서 명령을 완료하기 위해 수행하는 각 작업에 대해 자세한 정보를 표시하도록 Exchange 관리 셸에 지시합니다. 이 정보는 문제 해결에 유용할 수 있습니다.

크기 값을 허용하는 cmdlet에서는 정수 값을 KB(킬로바이트), MB(메가바이트), GB(기가바이트) 또는 TB(테라바이트)로 지정할 수 있습니다. 예를 들면,

Set-Mailbox "Kim Akers" -ProhibitSendQuota 200MB

Exchange 관리 셸은 개체를 수정하는 모든 Exchange 관련 명령을 기록할 수 있습니다. Exchange 관련 명령 활동은 PowerShell 이벤트 로그에 기록됩니다. Exchange 관련 명령 로깅을 사용하도록 설정하려면 다음 명령을 실행합니다.

Set-ItemProperty HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\Microsoft.Exchange.Management.PowerShell.Admin -Name LogpipelineExecutionDetails -value 1