跳至主要内容

Mailbox Management

Create & Remove Recipients

Create Mail Contact

New-MailContact -Name "name" `
-ExternalEmailAddress "amy@contoso.com" `
-OrganizationalUnit "MailContacts"

Create Distribution Group

New-DistributionGroup -Name "DL_name" `
-OrganizationalUnit "contoso.com/Managers" `
-SAMAccountName "GroupName" `
-Type "Distribution"

Create Room Mailbox

New-Mailbox -Name "<room-name>" `
-UserPrincipalName "<email>" `
-Database "<database>" `
-OrganizationalUnit "<OU>" `
-Room

Mailbox Features Management

List All Mailbox Features

Get-CasMailbox -ResultSize Unlimited `
-Filter {ActiveSyncEnabled -eq $true} |
Where-Object { $_.Identity -LIKE "contoso.com/Sales/*" } |
Select-Object DisplayName, ActiveSync* |
Export-CSV C:\activesync.csv

Bulk Enable/Disable Features

# Disable Outlook Anywhere (RPC over HTTP)
Get-Mailbox -ResultSize Unlimited |
Set-CASMailbox -MAPIBlockOutlookRpcHttp $True

# Disable POP3
Get-Mailbox -ResultSize Unlimited |
Set-CASMailbox -POPEnabled $False

# Disable IMAP
Get-Mailbox -ResultSize Unlimited |
Set-CASMailbox -ImapEnabled $False

# Disable MAPI
Get-Mailbox -ResultSize Unlimited |
Set-CASMailbox -MAPIEnabled $False

# Disable OWA (Outlook Web App)
Get-Mailbox -ResultSize Unlimited |
Set-CASMailbox -OWAEnabled $False

# Disable ActiveSync
Get-Mailbox -ResultSize Unlimited |
Set-CASMailbox -ActiveSyncEnabled $False

Note: You can target specific databases:

Get-Mailbox -Database 'DBname' -ResultSize Unlimited |
Set-CASMailbox -ActiveSyncEnabled $False

Distribution Group Management

Allow External Senders to Distribution Group

Get-DistributionGroup -OrganizationalUnit 'FromNotes' |
Set-DistributionGroup -RequireSenderAuthenticationEnabled $false

Upgrade Distribution Groups to Exchange 2010+

Get-DistributionGroup -ResultSize Unlimited |
Set-DistributionGroup -ForceUpgrade

List Dynamic Distribution Group Members

$group = "DynamicGroupName"
Get-Recipient -RecipientPreviewFilter `
(Get-DynamicDistributionGroup $group).RecipientFilter

Mailbox Quotas

Modify Mailbox Rule Quota

Get-Mailbox -ResultSize Unlimited |
Set-Mailbox -RulesQuota 256KB

Change Default Database Quotas

Set-MailboxDatabase <database-name> `
-ProhibitSendQuota 200MB `
-IssueWarningQuota 180MB `
-ProhibitSendReceiveQuota 220MB

Mailbox Statistics

Display Mailbox Sizes (Detailed)

Get-Mailbox -ResultSize Unlimited -ErrorAction SilentlyContinue |
Get-MailboxStatistics |
Select-Object *, `
@{name="TotalItemSizeInMB"; expression={[math]::Round($_.TotalItemSize.Value.ToBytes() / 1MB, 2)}}, `
@{name="TotalDeletedItemSizeInMB"; expression={[math]::Round($_.TotalDeletedItemSize.Value.ToBytes() / 1MB, 2)}}, `
@{name="CombinedTotalSizeInMB"; expression={
[math]::Round($_.TotalItemSize.Value.ToBytes() / 1MB, 2) +
[math]::Round($_.TotalDeletedItemSize.Value.ToBytes() / 1MB, 2)
}} |
Sort-Object CombinedTotalSizeInMB -Descending |
Format-Table DisplayName, *MB

Display Mailbox Size Statistics

Get-Mailbox -ResultSize Unlimited -ErrorAction SilentlyContinue |
Get-MailboxStatistics |
Select-Object *, `
@{name="TotalItemSizeInMB"; expression={[math]::Round($_.TotalItemSize.Value.ToBytes() / 1MB, 2)}}, `
@{name="TotalDeletedItemSizeInMB"; expression={[math]::Round($_.TotalDeletedItemSize.Value.ToBytes() / 1MB, 2)}}, `
@{name="CombinedTotalSizeInMB"; expression={
[math]::Round($_.TotalItemSize.Value.ToBytes() / 1MB, 2) +
[math]::Round($_.TotalDeletedItemSize.Value.ToBytes() / 1MB, 2)
}} |
Sort-Object CombinedTotalSizeInMB -Descending |
Measure-Object CombinedTotalSizeInMB -Sum -Average -Maximum -Minimum

Mailbox Size and Last Logon (with Database Location)

Get-Mailbox -Database mbdb4 |
Select-Object DisplayName, PrimarySmtpAddress,
@{n='ItemCount'; e={(Get-MailboxStatistics -Identity $_.DisplayName).ItemCount}},
@{n='TotalItemSize'; e={(Get-MailboxStatistics -Identity $_.DisplayName).TotalItemSize}},
@{n='LastLogonTime'; e={(Get-MailboxStatistics -Identity $_.DisplayName).LastLogonTime}},
@{n='LastLogoffTime'; e={(Get-MailboxStatistics -Identity $_.DisplayName).LastLogoffTime}} |
Sort-Object TotalItemSize -Descending |
Select-Object -Property DisplayName, PrimarySmtpAddress, ItemCount, TotalItemSize, LastLogonTime, LastLogoffTime |
Export-CSV D:\mailboxList1.csv -Encoding "UTF8"

Database Mailbox Statistics Export

Get-MailboxStatistics -Database "MBDB4" |
Select-Object DisplayName, ItemCount, TotalItemSize, LastLogonTime, LastLogoffTime |
Sort-Object TotalItemSize -Descending |
Export-CSV D:\List.csv -Encoding "UTF8"

Check Last Logon Time

Get-Mailbox | Get-MailboxStatistics |
Sort-Object LastLogonTime -Descending

Logon Statistics

Get-LogonStatistics -Database <database-name> | Format-List

ActiveSync Device Management

List ActiveSync Devices for User

Get-ActiveSyncDeviceStatistics -Mailbox <user> |
Format-Table DeviceType, DeviceUserAgent, LastSuccessSync

Mailbox Permissions

Show Mailbox Permissions

Get-Mailbox <identity> | Get-MailboxPermission -User <username>

Get Mailbox by Type

Get-Mailbox -RecipientTypeDetails UserMailbox