Skip to content

Exchange commands

powershell

Configuration: MS Exchange 2010 SP3, Windows 2008 R2

Collect info

Database size

Get-MailboxDatabase -Status | ft name,databasesize,availablenewmailboxspace -auto

Mailboxes in a database

Get-MailboxStatistics -Database "DB0" | sort TotalItemSize -desc | ft "displayname", "DisconnectReason", "TotalItemSize"

Mailbox - Biggest mailboxes

Get-MailboxStatistics -server SRV01 | sort TotalItemSize -desc | ft "displayname", "ItemCount", "TotalItemSize" | select -First 50

# Find the entity that owns the email address
Get-Recipient | ?{$_.emailaddresses -like "*[email protected]*"} 

MailBox - Import from PST

# Start the import. A UNC path is required.
New-MailboxImportRequest -FilePath \\SRV01\pst\filename.pst -Mailbox "user.name"

# View import progress
Get-MailboxImportRequest | Get-MailboxImportRequestStatistics

# Remove import requests
Get-MailboxImportRequest | Remove-MailboxImportRequest

Mailbox - export to PST

# Export the entire mailbox to PST
New-MailboxExportRequest -Mailbox User.Name -FilePath "\\SRV01\Share\filename.pst"

# Export messages to *.pst within a date range
# The date format is set to DD.MM.YYYY, but an error occurs if DD > 12.
# Options:
#  lt = less then <
#  gt = greater then >
#  le = less equal <=
#  ge = greater equal >=

New-MailboxExportRequest -Mailbox user.name -ContentFilter {(Sent -ge "01/01/2012") -and (Sent -lt "01/01/2013")} -FilePath \\SRV01\Share\user_name-2012.pst 

# View export progress
Get-MailboxExportRequest | Get-MailboxExportRequestStatistics

# Remove requests with Completed status
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest

# Remove all requests
Get-MailboxExportRequest | Remove-MailboxExportRequest

Moving mailbox to another DB

# Start the move. It runs in the background. The server can be safely restarted while it is running.
New-MoveRequest -Identity "user.name" -TargetDatabase "DB0"

# Move system (service) mailboxes
Get-Mailbox -Database "DB_FROM" Arbitration | New-MoveRequest -TargetDatabase "DB_TO"

# View status
Get-MoveRequest | Get-MoveRequestStatistics

# Remove requests with Completed status
Get-MoveRequest -MoveStatus Completed | Remove-MoveRequest

Mailbox - folders size

# Detailed
Get-MailboxFolderStatistics "user.name" 

# Summary
Get-MailboxFolderStatistics "user.name" | ft Name,FolderAndSubfolderSize

Mailbox - Grant contact permissions to another user

# View permissions
Get-MailboxFolderPermission -identity "user.name-from:\Контакты"

# Add Editor permissions
Add-MailboxFolderPermission -identity "user.name-from:\Контакты" -user "user.name-to" -AccessRights "Editor"

Remove messages

# Remove the message with subject «spam subj» from s.petrov's mailbox
Search-Mailbox -Identity "s.petrov" -SearchQuery 'тема:"spam subj"' DeleteContent

# View the number of messages with subject «spam subj» ...
# In a specific DB
Get-Mailbox -DataBase "DB001" | Search-Mailbox -SearchQuery 'тема:"spam subj"' -EstimateResultOnly | ft DisplayName, ResultItemsCount
# In a specific OU
Get-Mailbox -OrganizationalUnit "OU-NAME" | Search-Mailbox -SearchQuery 'тема:"spam subj"' -EstimateResultOnly | ft DisplayName, ResultItemsCount

# Remove messages with subject "spam subj" from all mailboxes in the DB001 database
# In a specific DB
Get-Mailbox -DataBase "DB001" | Search-Mailbox -SearchQuery 'тема:"spam subj"' -DeleteContent | ft DisplayName, ResultItemsCount
# In a specific OU
Get-Mailbox -OrganizationalUnit "OU-NAME" | Search-Mailbox -SearchQuery 'тема:"spam subj"' -DeleteContent | ft DisplayName, ResultItemsCount

Clean queue

# 
Get-Message -Queue "v09\Submission" -ResultSize unlimited | where{$_.Subject -eq "Subject" } | Remove-Message -WithNDR $False

#
Get-Message -ResultSize 10000 |where{$_.MessageSourceName -eq "SMTP:local" } | Remove-Message -WithNDR $False

#
Get-Message -ResultSize 10000 |where{$_.MessageSourceName -eq "DSN" } | Remove-Message 

Connection statistics for mobile devices

Get-ActiveSyncDeviceStatistics -Mailbox username@domain.com

!!!

Clean-MailboxDatabase
Get-LogonStatistics -Server V07 | Export-Csv logonstats.csv