Link to home
Start Free TrialLog in
Avatar of squimby
squimby

asked on

Mailbox service erroring out on Exchange 2016 installation

Hello,

I am in the process of migrating a 2010 Exchange Server running on Windows Server 2008 R2 Standard (Service Pack 3, update roll up 21)  to a 2016 Exchange server (CU 12) running on Windows Server 2016.
I completed all of the prerequisites and proceeded to install the Exchange 2016 role. Once I got to step 11 out of 14, it errored out on the mailbox role with the following message.

Error:
The following error was generated when "$error.Clear();
          if (($RoleIsDatacenter -ne $true) -and ($RoleIsDatacenterDedicated -ne $true))
          {
          if (test-ExchangeServersWriteAccess -DomainController $RoleDomainController -ErrorAction SilentlyContinue)
          {
          $sysMbx = $null;
          $name = "SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}";
          $dispname = "Microsoft Exchange";
          $mbxs = @( get-mailbox -arbitration -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1 );
          if ( $mbxs.length -eq 0)
          {
          $dbs = @(get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
          if ($dbs.Length -ne 0)
          {
          $arbUsers = @(get-user -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1);
          if ($arbUsers.Length -ne 0)
          {
          $sysMbx = enable-mailbox -Arbitration -identity $arbUsers[0] -DisplayName $dispname -database $dbs[0].Identity;
          }
          }
          }
          else
          {
          if ($mbxs[0].DisplayName -ne $dispname )
          {
          set-mailbox -Arbitration -identity $mbxs[0] -DisplayName $dispname -Force;
          }
          $sysMbx = $mbxs[0];
          }

          # Set the Organization Capabilities needed for this mailbox
          if ($sysMbx -ne $null)
          {
          Write-ExchangeSetupLog -Info ("Setting mailbox properties.");
          set-mailbox -Arbitration -identity $sysMbx -UMDataStorage:$true -Force;

          # No RetentionPolicy assigned to E-Discovery arbitration mailbox currently, we need to set it here.
          # This can be remove after BUG(O15#2555914) is fixed.
          if ($sysMbx.RetentionPolicy -eq $null )
          {
          $arbitrationRetentionPolicy = @(Get-RetentionPolicy -DomainController $RoleDomainController | where {$_.Name -eq 'ArbitrationMailbox'});
          set-mailbox -Arbitration -identity $sysMbx -RetentionPolicy $arbitrationRetentionPolicy[0].Identity -Force;
          }
          }
          else
          {
          Write-ExchangeSetupLog -Info ("Cannot find E-discovery arbitration mailbox with name=$name.");
          }
          }
          else
          {
          write-exchangesetuplog -info "Skipping creating Discovery Arbitration Mailbox because of insufficient permission."
          }
          }
        " was run: "Microsoft.Exchange.Data.DataValidationException: Database is mandatory on UserMailbox.".

Error:
The following error was generated when "$error.Clear();
          if (($RoleIsDatacenter -ne $true) -and ($RoleIsDatacenterDedicated -ne $true))
          {
          if (test-ExchangeServersWriteAccess -DomainController $RoleDomainController -ErrorAction SilentlyContinue)
          {
          $sysMbx = $null;
          $name = "SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}";
          $dispname = "Microsoft Exchange";
          $mbxs = @( get-mailbox -arbitration -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1 );
          if ( $mbxs.length -eq 0)
          {
          $dbs = @(get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
          if ($dbs.Length -ne 0)
          {
          $arbUsers = @(get-user -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1);
          if ($arbUsers.Length -ne 0)
          {
          $sysMbx = enable-mailbox -Arbitration -identity $arbUsers[0] -DisplayName $dispname -database $dbs[0].Identity;
          }
          }
          }
          else
          {
          if ($mbxs[0].DisplayName -ne $dispname )
          {
          set-mailbox -Arbitration -identity $mbxs[0] -DisplayName $dispname -Force;
          }
          $sysMbx = $mbxs[0];
          }

          # Set the Organization Capabilities needed for this mailbox
          if ($sysMbx -ne $null)
          {
          Write-ExchangeSetupLog -Info ("Setting mailbox properties.");
          set-mailbox -Arbitration -identity $sysMbx -UMDataStorage:$true -Force;

          # No RetentionPolicy assigned to E-Discovery arbitration mailbox currently, we need to set it here.
          # This can be remove after BUG(O15#2555914) is fixed.
          if ($sysMbx.RetentionPolicy -eq $null )
          {
          $arbitrationRetentionPolicy = @(Get-RetentionPolicy -DomainController $RoleDomainController | where {$_.Name -eq 'ArbitrationMailbox'});
          set-mailbox -Arbitration -identity $sysMbx -RetentionPolicy $arbitrationRetentionPolicy[0].Identity -Force;
          }
          }
          else
          {
          Write-ExchangeSetupLog -Info ("Cannot find E-discovery arbitration mailbox with name=$name.");
          }
          }
          else
          {
          write-exchangesetuplog -info "Skipping creating Discovery Arbitration Mailbox because of insufficient permission."
          }
          }
        " was run: "Microsoft.Exchange.Data.DataValidationException: Database is mandatory on UserMailbox.
   at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
   at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target, Boolean reThrow)
   at Microsoft.Exchange.Configuration.Tasks.DataAccessTask`1.Validate(TDataObject dataObject)
   at Microsoft.Exchange.Configuration.Tasks.SetTaskBase`1.InternalValidate()
   at Microsoft.Exchange.Configuration.Tasks.SetRecipientObjectTask`3.InternalValidate()
   at Microsoft.Exchange.Management.Common.SetMailEnabledRecipientObjectTask`3.InternalValidate()
   at Microsoft.Exchange.Management.RecipientTasks.SetUserBase`3.InternalValidate()
   at Microsoft.Exchange.Management.RecipientTasks.SetMailboxBase`3.InternalValidate()
   at Microsoft.Exchange.Management.RecipientTasks.SetMailbox.InternalValidate()
   at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1()
   at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".

Error:
The following error was generated when "$error.Clear();
          if (($RoleIsDatacenter -ne $true) -and ($RoleIsDatacenterDedicated -ne $true))
          {
          if (test-ExchangeServersWriteAccess -DomainController $RoleDomainController -ErrorAction SilentlyContinue)
          {
          $sysMbx = $null;
          $name = "SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}";
          $dispname = "Microsoft Exchange";
          $mbxs = @( get-mailbox -arbitration -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1 );
          if ( $mbxs.length -eq 0)
          {
          $dbs = @(get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
          if ($dbs.Length -ne 0)
          {
          $arbUsers = @(get-user -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1);
          if ($arbUsers.Length -ne 0)
          {
          $sysMbx = enable-mailbox -Arbitration -identity $arbUsers[0] -DisplayName $dispname -database $dbs[0].Identity;
          }
          }
          }
          else
          {
          if ($mbxs[0].DisplayName -ne $dispname )
          {
          set-mailbox -Arbitration -identity $mbxs[0] -DisplayName $dispname -Force;
          }
          $sysMbx = $mbxs[0];
          }

          # Set the Organization Capabilities needed for this mailbox
          if ($sysMbx -ne $null)
          {
          Write-ExchangeSetupLog -Info ("Setting mailbox properties.");
          set-mailbox -Arbitration -identity $sysMbx -UMDataStorage:$true -Force;

          # No RetentionPolicy assigned to E-Discovery arbitration mailbox currently, we need to set it here.
          # This can be remove after BUG(O15#2555914) is fixed.
          if ($sysMbx.RetentionPolicy -eq $null )
          {
          $arbitrationRetentionPolicy = @(Get-RetentionPolicy -DomainController $RoleDomainController | where {$_.Name -eq 'ArbitrationMailbox'});
          set-mailbox -Arbitration -identity $sysMbx -RetentionPolicy $arbitrationRetentionPolicy[0].Identity -Force;
          }
          }
          else
          {
          Write-ExchangeSetupLog -Info ("Cannot find E-discovery arbitration mailbox with name=$name.");
          }
          }
          else
          {
          write-exchangesetuplog -info "Skipping creating Discovery Arbitration Mailbox because of insufficient permission."
          }
          }
        " was run: "Microsoft.Exchange.Data.DataValidationException: Database is mandatory on UserMailbox.".

Error:
The following error was generated when "$error.Clear();
          if (($RoleIsDatacenter -ne $true) -and ($RoleIsDatacenterDedicated -ne $true))
          {
          if (test-ExchangeServersWriteAccess -DomainController $RoleDomainController -ErrorAction SilentlyContinue)
          {
          $sysMbx = $null;
          $name = "SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}";
          $dispname = "Microsoft Exchange";
          $mbxs = @( get-mailbox -arbitration -Filter {name -eq $name} -IgnoreDefaultScope -resultSize 1 );
          if ( $mbxs.length -eq 0)
          {
          $dbs = @(get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController);
          if ($dbs.Length -ne 0)
          {
          $arbUsers = @(get-user -Filter {name -eq $name} -IgnoreDefaultScope -ResultSize 1);
          if ($arbUsers.Length -ne 0)
          {
          $sysMbx = enable-mailbox -Arbitration -identity $arbUsers[0] -DisplayName $dispname -database $dbs[0].Identity;
          }
          }
          }
          else
          {
          if ($mbxs[0].DisplayName -ne $dispname )
          {
          set-mailbox -Arbitration -identity $mbxs[0] -DisplayName $dispname -Force;
          }
          $sysMbx = $mbxs[0];
          }

          # Set the Organization Capabilities needed for this mailbox
          if ($sysMbx -ne $null)
          {
          Write-ExchangeSetupLog -Info ("Setting mailbox properties.");
          set-mailbox -Arbitration -identity $sysMbx -UMDataStorage:$true -Force;

          # No RetentionPolicy assigned to E-Discovery arbitration mailbox currently, we need to set it here.
          # This can be remove after BUG(O15#2555914) is fixed.
          if ($sysMbx.RetentionPolicy -eq $null )
          {
          $arbitrationRetentionPolicy = @(Get-RetentionPolicy -DomainController $RoleDomainController | where {$_.Name -eq 'ArbitrationMailbox'});
          set-mailbox -Arbitration -identity $sysMbx -RetentionPolicy $arbitrationRetentionPolicy[0].Identity -Force;
          }
          }
          else
          {
          Write-ExchangeSetupLog -Info ("Cannot find E-discovery arbitration mailbox with name=$name.");
          }
          }
          else
          {
          write-exchangesetuplog -info "Skipping creating Discovery Arbitration Mailbox because of insufficient permission."
          }
          }
        " was run: "Microsoft.Exchange.Data.DataValidationException: Database is mandatory on UserMailbox.
   at Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception, ErrorCategory errorCategory, Object target, String helpUrl)
   at Microsoft.Exchange.Configuration.Tasks.Task.WriteError(Exception exception, ErrorCategory category, Object target, Boolean reThrow)
   at Microsoft.Exchange.Configuration.Tasks.DataAccessTask`1.Validate(TDataObject dataObject)
   at Microsoft.Exchange.Configuration.Tasks.SetTaskBase`1.InternalValidate()
   at Microsoft.Exchange.Configuration.Tasks.SetRecipientObjectTask`3.InternalValidate()
   at Microsoft.Exchange.Management.Common.SetMailEnabledRecipientObjectTask`3.InternalValidate()
   at Microsoft.Exchange.Management.RecipientTasks.SetUserBase`3.InternalValidate()
   at Microsoft.Exchange.Management.RecipientTasks.SetMailboxBase`3.InternalValidate()
   at Microsoft.Exchange.Management.RecipientTasks.SetMailbox.InternalValidate()
   at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1()
   at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".



I have been reading online that a fix is to delete the system mailbox and then re-create it on the existing Exchange 2010 server.  When I go into Active Directory, the System Mailboxes are all in a disabled state. This is a production server. What impact could this have on the end users and mail flow, if any? Is there any other way to resolve this without deleting anything that may be "less riskier"? I need to get Exchange 2016 installed as soon as possible so I can begin migrating the mailboxes to it. Any advice / help is appreciated. Thanks!
Avatar of M A
M A
Flag of United States of America image

Please run this command and make sure you have discoverysearch mailbox exists. if it doesnt exist run  setup /prepareAD from the exchange media. Re-run setup again after discoverysearch mailbox is created.  Run the same command to ensure it is created.
Get-Mailbox –Arbitration | Select Name,Database 

Open in new window

Avatar of squimby
squimby

ASKER

I ran that command and this is what I get


[PS] C:\Windows\system32>Get-Mailbox -Arbitration | Select Name,Database

Name                                                        Database
----                                                        --------
SystemMailbox{1f05a927-c598-466e-b217-ea88b62c46a3}
WARNING: The object ACSD.local/Users/SystemMailbox{1f05a927-c598-466e-b217-ea88b62c46a3} has been corrupted, and it's
in an inconsistent state. The following validation errors happened:
WARNING: Database is mandatory on UserMailbox.
WARNING: Database is mandatory on UserMailbox.
FederatedEmail.4c1f4d8b-8179-4148-93bf-00a95fa1e042         DB3
SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9}
WARNING: The object ACSD.local/Users/SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9} has been corrupted, and it's
in an inconsistent state. The following validation errors happened:
WARNING: Database is mandatory on UserMailbox.
WARNING: Database is mandatory on UserMailbox.
SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}         Mailbox Database 0900771449


[PS] C:\Windows\system32>
ASKER CERTIFIED SOLUTION
Avatar of Sanjay kumar Pasupuleti
Sanjay kumar Pasupuleti
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
After setting the Home MDB as suggested by Sanjay you should be good to proceed with the setup
Avatar of squimby

ASKER

There is 1 of the System Mailboxes that does not reference a DB - how do I fix that one?

Would this be the correct 2 scripts according to my error message?


Set-Mailbox "SystemMailbox{1f05a927-c598-466e-b217-ea88b62c46a3}" -Arbitration -Database "DB3"


Set-Mailbox "SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}" -Arbitration -Database "Mailbox Database 0900771449"
Yes make sure the Database is online
Avatar of squimby

ASKER

Ok thanks - there is 1 of the System Mailboxes that does not reference a DB - how do I fix that one?
just set a any DB, it will move the mailbox to it.