Let’s assume that you work for a company that has Exchange 2016 and has big amount of databases (50-100 DB).
You constantly delete databases to clear white space or for whatever reason but don’t usually keep on deleting folders or lost track of which database is deleted in your DB Folder.
Real Life Scenario
In the following PowerShell script I am going to demonstrate how to check which of the folders in my D drive (Database drive) has an existing Database and which do not have.
Databases Folder path
The below script gets all folders in the drive path D:\Databases to check if they exist or not.
# Get deleted database that still has remaining non deleted folders
$databases = Get-ChildItem D:\Databases\* -Directory | select Name
foreach ($database in $databases)
$DB = $database.Name
if ((Get-MailboxDatabase -Identity $db -ErrorAction Ignore ))
write-host "Database $($db) exists on Exchange Server" -ForegroundColor Green
Write-Host "Database $($db) doesn't exist on Exchange Server " -ForegroundColor Red
I did not add the part to delete the folder through the script as it is still a risky thing to automate and would rather do the deletion manually after double confirming it’s totally gone.
For more about Exchange Server related articles please visit Exchange section here
Hope this helps.