====== 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 '' * **Send As:**  * ''Set-MailboxSentItemsConfiguration  -SendAsItemsCopiedTo SenderAndFrom'' * **Send On Behalf:**  * ''Set-MailboxSentItemsConfiguration  -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'' ====View Size and Whitespace in all Mailbox Databases==== * ''Get-MailboxDatabase -status | select Name, Servers, DatabaseSize, 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'' ====Count the Number of Mailboxes in Each Database==== * ''Get-Mailbox | Group-Object -Property:Database | Select-Object Name,Count | Sort-Object Name | Format-Table -Auto''