Tuesday, July 12, 2011

Installing the mailbox server role for Exchange 2010 throws the error: “The database object 'Mailbox Database 1590813985' in Active Directory has been corrupted and is in an inconsistent state. Unable to find any server hosting a copy of this database.”

Problem

You’ve been having problems with installing a mailbox server and after several failed installs, you decide to remove the mailbox server object left by the failed installed from ADSIedit via:

CN=Servers,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=Domain,CN=Microsoft,CN=Services,CN=Configuration,DC=domain,DC=com

image

You proceed to installing the mailbox server role only to run into the following error:

image

Summary: 9 item(s). 7 succeeded, 1 failed.

Elapsed time: 04:23:30

Preparing Setup

Completed

Elapsed Time: 00:00:00

Stopping Services

Completed

Elapsed Time: 00:00:01

Copy Exchange Files

Completed

Elapsed Time: 00:00:20

Language Files

Completed

Elapsed Time: 00:01:22

Restoring services

Completed

Elapsed Time: 00:00:00

Languages

Completed

Elapsed Time: 00:00:01

Management Tools

Completed

Elapsed Time: 00:00:10

Mailbox Role

Failed

Error:

The following error was generated when "$error.Clear();

$name = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxUniqueName;

$dispname = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxDisplayName;

$dismbx = get-mailbox -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1;

if( $dismbx -ne $null)

{

$srvname = $dismbx.ServerName;

if( $dismbx.Database -ne $null -and $RoleFqdnOrName -like "$srvname.*" )

{

Write-ExchangeSetupLog -info "Setup DiscoverySearchMailbox Permission.";

$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };

if( $mountedMdb -eq $null )

{

Write-ExchangeSetupLog -info "Mounting database before stamp DiscoverySearchMailbox Permission...";

mount-database $dismbx.Database;

}

$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };

if( $mountedMdb -ne $null )

{

$dmRoleGroupGuid = [Microsoft.Exchange.Data.Directory.Management.RoleGroup]::DiscoveryManagementWkGuid;

$dmRoleGroup = Get-RoleGroup -Identity $dmRoleGroupGuid -DomainController $RoleDomainController -ErrorAction:SilentlyContinue;

if( $dmRoleGroup -ne $null )

{

Add-MailboxPermission $dismbx -User $dmRoleGroup.Identity -AccessRights FullAccess -DomainController $RoleDomainController -WarningAction SilentlyContinue;

}

}

}

}

" was run: "You must provide a value for this property. Property Name: HostServer".

You must provide a value for this property. Property Name: HostServer

Click here for help... http://technet.microsoft.com/en-US/library/ms.exch.err.default(EXCHG.141).aspx?v=14.1.218.11&e=ms.exch.err.Ex88D115&l=0&cl=cp

Error:

The following error was generated when "$error.Clear();

$name = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxUniqueName;

$dispname = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxDisplayName;

$dismbx = get-mailbox -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1;

if( $dismbx -ne $null)

{

$srvname = $dismbx.ServerName;

if( $dismbx.Database -ne $null -and $RoleFqdnOrName -like "$srvname.*" )

{

Write-ExchangeSetupLog -info "Setup DiscoverySearchMailbox Permission.";

$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };

if( $mountedMdb -eq $null )

{

Write-ExchangeSetupLog -info "Mounting database before stamp DiscoverySearchMailbox Permission...";

mount-database $dismbx.Database;

}

$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };

if( $mountedMdb -ne $null )

{

$dmRoleGroupGuid = [Microsoft.Exchange.Data.Directory.Management.RoleGroup]::DiscoveryManagementWkGuid;

$dmRoleGroup = Get-RoleGroup -Identity $dmRoleGroupGuid -DomainController $RoleDomainController -ErrorAction:SilentlyContinue;

if( $dmRoleGroup -ne $null )

{

Add-MailboxPermission $dismbx -User $dmRoleGroup.Identity -AccessRights FullAccess -DomainController $RoleDomainController -WarningAction SilentlyContinue;

}

}

}

}

" was run: "The database object 'Mailbox Database 1590813985' in Active Directory has been corrupted and is in an inconsistent state. Unable to find any server hosting a copy of this database.".

The database object 'Mailbox Database 1590813985' in Active Directory has been corrupted and is in an inconsistent state. Unable to find any server hosting a copy of this database.

Click here for help... http://technet.microsoft.com/en-US/library/ms.exch.err.default(EXCHG.141).aspx?v=14.1.218.11&e=ms.exch.err.Ex88D115&l=0&cl=cp

Error:

The following error was generated when "$error.Clear();

$name = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxUniqueName;

$dispname = [Microsoft.Exchange.Management.RecipientTasks.EnableMailbox]::DiscoveryMailboxDisplayName;

$dismbx = get-mailbox -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1;

if( $dismbx -ne $null)

{

$srvname = $dismbx.ServerName;

if( $dismbx.Database -ne $null -and $RoleFqdnOrName -like "$srvname.*" )

{

Write-ExchangeSetupLog -info "Setup DiscoverySearchMailbox Permission.";

$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };

if( $mountedMdb -eq $null )

{

Write-ExchangeSetupLog -info "Mounting database before stamp DiscoverySearchMailbox Permission...";

mount-database $dismbx.Database;

}

$mountedMdb = get-mailboxdatabase $dismbx.Database -status | where { $_.Mounted -eq $true };

if( $mountedMdb -ne $null )

{

$dmRoleGroupGuid = [Microsoft.Exchange.Data.Directory.Management.RoleGroup]::DiscoveryManagementWkGuid;

$dmRoleGroup = Get-RoleGroup -Identity $dmRoleGroupGuid -DomainController $RoleDomainController -ErrorAction:SilentlyContinue;

if( $dmRoleGroup -ne $null )

{

Add-MailboxPermission $dismbx -User $dmRoleGroup.Identity -AccessRights FullAccess -DomainController $RoleDomainController -WarningAction SilentlyContinue;

}

}

}

}

" was run: "You must provide a value for this property. Property Name: HostServer".

You must provide a value for this property. Property Name: HostServer

Click here for help... http://technet.microsoft.com/en-US/library/ms.exch.err.default(EXCHG.141).aspx?v=14.1.218.11&e=ms.exch.err.Ex88D115&l=0&cl=cp

Elapsed Time: 04:21:32

Finalizing Setup

Cancelled

You will also find the event ID 1002 with the same message logged in your application logs:

image

Solution

What’s important in the error message above is the following:

The database object 'Mailbox Database 1590813985' in Active Directory has been corrupted and is in an inconsistent state. Unable to find any server hosting a copy of this database.

What basically happened is that while the server object was deleted, the mailbox database for the server hasn’t.  To rectify this issue, use ADSIedit and navigate to:

CN=Databases,CN=Exchange Administrative Group (FYDIBOHF23SPDLT),CN=Administrative Groups,CN=Domain,CN=Microsoft,CN=Services,CN=Configuration,DC=domain,DC=com

image

… then delete the mailbox database has now been orphaned.

image

Note: I know that the mailbox database being deleted is empty and have also done my sanity checks to ensure it.

image

Once this orphaned mailbox database object has been deleted, Exchange Server 2010 should now install properly.

No comments: