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