TinyAddicts is a series of ultra-short, ultra-useful scripts and snippets. No fluff – just pure, working code. Perfect for admins, devs, and anyone who values their time.
Scenario
Want to find users who have mailbox forwarding enabled in Exchange Online? This quick script returns both internal and external forwarding configurations.
Code
|
1 2 3 |
Get-ExoMailbox -ResultSize Unlimited -Properties ForwardingSmtpAddress,ForwardingAddress,DeliverToMailboxAndForward | Where-Object { $_.ForwardingSmtpAddress -or $_.ForwardingAddress } | Select-Object DisplayName, UserPrincipalName, ForwardingSmtpAddress, ForwardingAddress, DeliverToMailboxAndForward |
Sample output
|
1 2 3 4 |
DisplayName UserPrincipalName ForwardingSmtpAddress ForwardingAddress DeliverToMailboxAndForward ----------- ------------------ ---------------------- ------------------ --------------------------- John Doe john@contoso.com john.private@gmail.com (blank) True Jane Smith jane@contoso.com (blank) HRMailbox False |
Notes
- Requires
Connect-ExchangeOnline(Exchange Online PowerShell v2+). ForwardingSmtpAddress= external forwardingForwardingAddress= internal mailboxDeliverToMailboxAndForward= True → mailbox keeps a copy; False → only forwards
To clear forwarding:
|
1 |
Set-Mailbox -Identity "user@domain.com" -ForwardingSmtpAddress $null -ForwardingAddress $null |
Export results to CSV:
|
1 |
... | Export-Csv ".\MailboxForwardingReport.csv" -NoTypeInformation -Encoding UTF8 |
More bite-sized scripts in the TinyAddicts series – simple tools, serious impact.

