Description

Script to automate the removal of the DumpsterInfo key across all servers in your organization, use the DeleteDumpsterRegKey.ps1 script.

This is a deletedumpsterregkey.ps1 script. It goes with the following blog post:

http://msexchangeteam.com/archive/2010/09/01/456094.aspx

Script

PowerShell
Edit|Remove
################################################################################# 
#  
# The sample scripts are not supported under any Microsoft standard support  
# program or service. The sample scripts are provided AS IS without warranty  
# of any kind. Microsoft further disclaims all implied warranties including, without  
# limitation, any implied warranties of merchantability or of fitness for a particular  
# purpose. The entire risk arising out of the use or performance of the sample scripts  
# and documentation remains with you. In no event shall Microsoft, its authors, or  
# anyone else involved in the creation, production, or delivery of the scripts be liable  
# for any damages whatsoever (including, without limitation, damages for loss of business  
# profits, business interruption, loss of business information, or other pecuniary loss)  
# arising out of the use of or inability to use the sample scripts or documentation,  
# even if Microsoft has been advised of the possibility of such damages 
# 
################################################################################# 
 
 
 
#SP1RTM version is: 14.1.218.xxx 
$version = New-Object -TypeName "System.Version" -ArgumentList 14,1,218,0 
 
$mailboxServers = Get-ExchangeServer | where { ` 
    $_.IsMailboxServer -and ` 
    [Version]$_.AdminDisplayVersion -ge $version } 
 
$totalDeletions = 0 
foreach ($mbx in $mailboxServers) 
{ 
    $server = $mbx.Name 
    # Open the remote registry 
    $rootkey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey("LOCALMACHINE", $server) 
     
    $key = $rootkey.OpenSubkey("SOFTWARE\Microsoft\ExchangeServer\v14\Replay\State") 
    if ($key.SubKeyCount -gt 0) 
    { 
        # This gives us the list of MDB guid subkeys 
        $subkeyNames = $key.GetSubKeyNames() 
        foreach ($skn in $subkeyNames) 
        { 
            $subkey = $key.OpenSubkey($skn, [Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree) 
            if ($subkey.SubKeyCount -gt 0) 
            { 
                # This gives us the list of DumpsterInfo or any other subkeys for each MDB 
                $finalKeyNames = $subkey.GetSubKeyNames() 
                foreach ($finalKeyName in $finalKeyNames) 
                { 
                    Write-Host "$server Deleting $($subkey.Name)\$finalKeyName" 
                    $subkey.DeleteSubkey($finalKeyName) 
                    $totalDeletions++ 
                } 
            } 
            $subkey.Close() 
        } 
    } 
    $key.Close() 
    $rootkey.Close()     
} 
 
Write-Host "Deleted $totalDeletions subkeys!"