This is an old revision of the document!
Powershell Exchange
General Information
This page shows neat tricks for powershell within exchange to get interesting information (one liners)
Checklist
- Powershell CLI installed
Find users that are auto forwarding /redirecting their email
get-mailbox -Filter { ForwardingAddress -like '*' } | select-object Name,ForwardingAddress
- finds all addresses with the forwarding address set in exchange management
$mbox = Get-Mailbox; $mbox | Foreach { Get-InboxRule -Mailbox $_ }
- finds inbox rules that forward to other users
Leave a copy of sent messages in shared mailboxes
If you have exchange 2010+ you can use the following commands to set a mailbox to allow people with “Send As” Permissions to leave a copy of messages they send as the mailbox into the shared mailboxes sent items.
- Get current status
- *
Get-MaiboxSentItemsConfiguration <SharedAccountAlias>
- Send As:
- *
Set-MailboxSentItemsConfiguration <SharedAccountAlias> -SendAsItemsCopiedTo SenderAndFrom
- Send On Behalf:
- *
Set-MailboxSentItemsConfiguration <SharedAccountAlias> -SendOnBehalfOfItemsCopiedTo SenderAndFrom
View Whitespace in Mailbox Database
If you move mailboxes, or delete a mailboxes or a large number of items, Exchange does not shrink the mailbox database, and instead creates whitespace, or “New Mailbox Space” to check the size of this, to determine if an offline defrag is necessary, use the following command.
- *
Get-MailboxDatabase <'Database Name'> -Status | FL AvailableNewMailboxSpace
Get Details about Mailbox Move Requests
- *
Get-MoveRequest | Get-MoveRequestStatistics
Generate Report of Mailbox Utilization
Get-MailboxDatabase | Get-MailboxStatistics | Select DisplayName, LastLoggedOnUserAccount, ItemCount, TotalItemSize, LastLogonTime, LastLogoffTime | Sort-Object TotalItemSize -Descending | Export-CSV c:\temp\[ReportName].csv