PowerShell
Edit|Remove
  
<#      
.NOTES  
#================================= 
# Script       : Get-Disconnected_MB_All_Servers.ps1  
# Created    : ISE 3.0   
# Author      : casey.dedeal   
# Date         : 02/24/2017 08:43:41   
# Org           : ETC Solutions  
# File Name  :  
# Comments :   
#================================= 
.DESCRIPTION  
         
        1.Get all MBX Servers in the environment  
        2.Get all Databases in the environment  
        3.Run Clean-up on all the databases 
        4.Get list of Disconnected mailboxes  
        5.Open results on Grid View to be copied onto Excel etc. 
 
#>  
 
# 
clear-host  
 
# Util's 2 
$c = "Cyan" 
$y = "Yellow" 
$r = "red" 
$w = "white" 
$g = "darkgreen" 
 
# Preference Set  
$wp = 'SilentlyContinue'  # Warning Preference  
$wa = 'SilentlyContinue'  # Warning Action 
$ea = 'SilentlyContinue'   # Error Action  
 
# Collect MBX info 
$Servers  = Get-MailboxServer | Select-Object name -ExpandProperty name 
 
# Getting List of MBX/HTS Servers  
write-host -$w "-------------------------------"  
write-host -$y "  Listing All Mailbox Servers  "   
write-host -$w "-------------------------------"  
 
 
# 1._ listing MBX Servers  
$Servers 
 
# 2._Clean Mailbox databases on All Servers 
$dblist  = Get-MailboxDatabase | select name -ExpandProperty name  
Write-host "" 
 
# 3_Loop through all Databases & run Clean up for each db 
foreach ($db in $dblist) 
{ 
  Write-Host -$y "_Processing clean-up on " -nonewline; Write-Host "$db" -f green; 
  Clean-MailboxDatabase -Identity $db -WarningAction $wa -ErrorAction $ea 
    
} 
 
 
# 4_.Loop through Each MBX Server 
$S_Output = @() 
 
foreach ($Server in $Servers) 
{ 
 Write-host --"_Processing $Server" 
 
 $S_Output = Get-MailboxStatistics -server $Server | where { $_.DisconnectDate -ne $null } | select DisplayName,MailboxGuid,Database,DisconnectDate 
 
} 
 
# 5._ Writing results  
write-host -f y "_MailboxStatistics" 
$S_Output 
 
 
# 6_.Opening Out-Grid  
$S_Output | Out-GridView 
  
 
 

This script will run clean-Mailboxdatabase cmdlet for all the database to gather the disconnected user mailboxes. Script will first list all Mailboxes in the environment. It will then list all the mailbox databases. It will run Clean-up on all the databases. When finish it will go through each database and will search for disconnected mailbox. Results will be displayed on the screen as well as in the out-Grid view for copying into  Excell to be used for reporting etc purposes.