question

jennylee-7288 avatar image
0 Votes"
jennylee-7288 asked ·

Exchange 2016 CU 19 update failed at Mailbox role: Mailbox service

R:unning CU 19 update on exchange 2016 on server 2012r2 Failed on step 13 of 17 The following error was generated when "$error.Clear(); if (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated) { $arbUsers = @(get-user -Filter {lastname -eq "MSExchApproval 1f05a927-3be2-4fb9-aa03-b59fe3b56f4c"} -IgnoreDefaultScope -ResultSize 1); if ($arbUsers.Length -ne 0) { $mbxname = $arbUsers[0].name; $mbxs = @( get-mailbox -arbitration -Filter {name -eq $mbxname} -IgnoreDefaultScope -resultSize 1 ); if ( $mbxs.length -eq 0) { $dbs = @(get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController); if ($dbs.Length -ne 0) { enable-mailbox -Arbitration -identity $arbUsers[0] -database $dbs[0].Identity; } } } } " was run: "Microsoft.Exchange.Data.DataValidationException: ExternalEmailAddress is mandatory on MailUser. at Microsoft.Exchange.Data.Directory.ADDataSession.Save(ADObject instanceToSave, IEnumerable`1 properties, Boolean bypassValidation) at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientObjectSession.Save(ADRecipient instanceToSave, String callerFilePath, Int32 callerFileLine, String memberName) at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientObjectSession.Microsoft.Exchange.Data.IConfigDataProvider.Save(IConfigurable instance, String callerFilePath, Int32 callerFileLine, String memberName) at Microsoft.Exchange.Management.RecipientTasks.EnableMailbox.PrepareRecipientObject(ADUser& user) at Microsoft.Exchange.Management.RecipientTasks.EnableRecipientObjectTask`2.PrepareDataObject() at Microsoft.Exchange.Configuration.Tasks.SetTaskBase`1.InternalValidate() at Microsoft.Exchange.Configuration.Tasks.RecipientObjectActionTask`2.InternalValidate() at Microsoft.Exchange.Management.RecipientTasks.EnableMailbox.InternalValidate() at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1() at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".

office-exchange-hybrid-itpro
· 2
10 |1000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

This is a hybrid setup

0 Votes 0 ·

I can't even submit a pay per incident support request with microsoft. It keeps asking me for a contract number. Any ideas. The phone number does not help either 800-642-7676

0 Votes 0 ·
sambruins avatar image
0 Votes"
sambruins answered ·

Can you check MSExchApproval 1f05a927-3be2-4fb9-aa03-b59fe3b56f4c has a mailbox database assigned check in user attributes or via adding adsiedit

· 20 ·
10 |1000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

It did not. I had put it in some other ones, but somehow missed that. I will try to run it again. Will take me a bit as I have to restore a few things

0 Votes 0 ·

I re-ran setup and after preparing Files completed it got stuck on copying exchange files at 16% for a very long time. I'm still waiting. This did not happen the first couple of times.

0 Votes 0 ·

Hang in there this can take a couple of hours to complete

1 Vote 1 ·

Make sure you disable any anti-malware software if that is installed on the server

0 Votes 0 ·

Yes, Thank you. that was my first issue when I started and it wouldn't unload - was told to run an uninstall which crashed the whole server and had to restore from back up. The trend people had to be involved to remove it.

0 Votes 0 ·

Mailbox role: Client Access service FAILED The following error was generated when $error.Clear(); if (get-service MSExchangeServiceHost* | where {$_.name -eq "MSExchangeServiceHost"}) { if ($RoleDatacenterIsTestEnv) { Stop-Process -Name
"Microsoft.Exchange.ServiceHost" -Force
Stop-service MSExchangeServiceHost }
Start-service MSExchangeServiceHost }" was run: "Microsoft.PowerShell.Commands.ServiceCommandException: Service
'Microsoft Exchange Service Host (MSExchangeServiceHost)' cannot be started due
to the following error: Cannot start service MSExchangeServiceHost on computer

0 Votes 0 ·

wouldn't all fit: Any ideas?
'.'. ---> System.InvalidOperationException: Cannot start service
MSExchangeServiceHost on computer '.'. --->
System.ComponentModel.Win32Exception: The service did not respond to the start
or control request in a timely fashion --- End of inner exception stack trace---
at System.ServiceProcess.ServiceController.Start(String[] args) at
Microsoft.PowerShell.Commands.ServiceOperationBaseCommand.DoStartService(Service

0 Votes 0 ·

Can you check that all the dependences have started including the Microsoft Exchange active directory topology service, and make they are all set to automatic start

0 Votes 0 ·
Show more comments
AshokM-8240 avatar image
0 Votes"
AshokM-8240 answered ·

Hi @jennylee-7288 ,

Did you run setup /prepareAD before running the setup? Looks like issue with the arbitration mailbox.

Run the command in Exchange management shell,

Get-Mailbox –Arbitration | Select Name,Database

there would be a warning for one of the system mailboxes, if yes, run the below command to set the database to that system mailbox

Set-Mailbox "System Mailbox xxxxx" –Database "DB Name" –Arbitration

If the above suggestion helps, please click on "Accept Answer" and upvote it.

· 1 ·
10 |1000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

I did run /prepare AD and I cannot get EMS to come up to run that. All kinds of errors

0 Votes 0 ·
jennylee-7288 avatar image
0 Votes"
jennylee-7288 answered ·
 Mailbox role: Mailbox service                             FAILED

The following error was generated when "$error.Clear();
If ($RoleProductPlatform -eq "amd64") {
try { # Need to configure the ETL
traces before the fast service is installed. This will ensure that when the
service comes up # it will have the necessary trace session setting available
to read from the registry $fastPerfEtlTraceFolderPath = Join-Path -Path
$RoleBinPath -ChildPath "\Search\Ceres\Diagnostics\ETLTraces"
$fastDiagnosticTracingRegKeyPath = 'HKLM:\SOFTWARE\Microsoft\Office
Server\16.0\Search\Diagnostics\Tracing' if(-not(Test-Path -Path
$fastPerfEtlTraceFolderPath)) { $null = New-Item $fastPerfEtlTraceFolderPath
-Type 'Directory' -Force }
if (-not(Test-Path -Path $fastDiagnosticTracingRegKeyPath)) {
$null = New-Item -Path $fastDiagnosticTracingRegKeyPath -Force }
$null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'TracingPath' -PropertyType 'string' -Value $fastPerfEtlTraceFolderPath -Force $null = New-ItemProperty -Path
$fastDiagnosticTracingRegKeyPath -Name 'TracingFileName' -PropertyType 'string'
-Value 'DocumentProcessingTrace' -Force $null = New-ItemProperty -Path
$fastDiagnosticTracingRegKeyPath -Name 'DocumentParserSuccessLogMessage'
-PropertyType 'Dword' -Value 1 -Force $null = New-ItemProperty -Path
$fastDiagnosticTracingRegKeyPath -Name 'DocumentParserLoggingNoInitialisation'
-PropertyType 'Dword' -Value 1 -Force # Max trace folder size 50 * 100 =
5GB $null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name
'MaxTraceFileSize' -PropertyType 'Dword' -Value 50 -Force $null =
New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name
'MaxTraceFileCount' -PropertyType 'Dword' -Value 100 -Force
$null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name
'UseGeneralSwitch' -PropertyType 'Dword' -Value 1 -Force
$null = New-ItemProperty -Path $fastDiagnosticTracingRegKeyPath -Name 'GeneralSwitch'
-PropertyType 'Dword' -Value 0 -Force } catch { # ETl tracing is not
critical. Info only log Write-ExchangeSetupLog -Info ("An exception ocurred
while trying to Configure the FAST ETL traces. Exception: " +
$.Exception.Message); } try { $fastFusionRegKeyPath =
'HKLM:\SOFTWARE\Microsoft\Office Server\16.0\Search\FlightControl' if
(Test-Path -Path $fastFusionRegKeyPath) { Remove-ItemProperty -Path
$fastFusionRegKeyPath -Name 'fusion_new_enabled' -Force -ErrorAction
SilentlyContinue Remove-ItemProperty -Path $fastFusionRegKeyPath -Name
'fusion_old_enabled' -Force -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $fastFusionRegKeyPath -Name 'fusion_compare_outputs' -Force -ErrorAction SilentlyContinue } } catch { # Removing new fusion keys is not critical.
Info only log Write-ExchangeSetupLog -Info ("An exception ocurred while trying
to remove the fast new fusion reg keys. Exception: " + $
.Exception.Message);
} $fastInstallConfigPath = Join-Path -Path $RoleBinPath -ChildPath
"Search\Ceres\Installer"; $command = Join-Path -Path $fastInstallConfigPath
-ChildPath "InstallConfig.ps1"; $dataFolderPath = Join-Path -Path $RoleBinPath
-ChildPath "Search\Ceres\HostController\Data"; # Remove previous
SearchFoundation configuration &$command -action u -silent; try { if
([System.IO.Directory]::Exists($dataFolderPath)) {
[System.IO.Directory]::Delete($dataFolderPath, $true); } } catch {
$deleteErrorMsg = "Failure cleaning up SearchFoundation Data folder. - " +
$dataFolderPath + " - " + $_.Exception.Message;
Write-ExchangeSetupLog -Error $deleteErrorMsg; }

Re-add the SearchFoundation configuration

Try { # the BasePort value MUST be kept in sync with
dev\Search\src\OperatorSchema\SearchConfig.cs
&$command -action i -baseport
3800 -dataFolder $dataFolderPath -silent; } catch {
$errorMsg = "Failure configuring SearchFoundation through installconfig.ps1 - " +
$.Exception.Message; Write-ExchangeSetupLog -Error $errorMsg;
# Clean up the failed configuration attempt.
&$command -action u -silent; try { if ([System.IO.Directory]::Exists($dataFolderPath)) {
[System.IO.Directory]::Delete($dataFolderPath, $true); } } catch {
$deleteErrorMsg = "Failure cleaning up SearchFoundation Data folder. - " +
$dataFolderPath + " - " + $
.Exception.Message;
Write-ExchangeSetupLog -Error
$deleteErrorMsg; } }
# Set the PowerShell Snap-in's public key tokens try { $PowerShellSnapinsPath =
"HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\";
$FastSnapinNames =
@("EnginePSSnapin", "HostControllerPSSnapIn", "InteractionEnginePSSnapIn",
"JunoPSSnapin", "SearchCorePSSnapIn");
$officePublicKey = "71E9BCE111E9429C";
$exchangePublicKey = "31bf3856ad364e35";
foreach ($fastSnapinName in
$FastSnapinNames) {
$fastSnapinPath = $PowerShellSnapinsPath +
$fastSnapinName; $assemblyNameProperty = Get-ItemProperty -Path
$fastSnapinPath -Name "AssemblyName" -ErrorAction SilentlyContinue;
If ($assemblyNameProperty -ne $null -and (-not
[string]::IsNullOrEmpty($assemblyNameProperty.AssemblyName))) {
$newAssemblyName = $assemblyNameProperty.AssemblyName -ireplace
($officePublicKey, $exchangePublicKey);
Set-ItemProperty -Path $fastSnapinPath
-Name "AssemblyName" -Value $newAssemblyName; } } } catch { # Info only
Log Write-ExchangeSetupLog -Info ("An exception ocurred while configuring
Search Foundation PowerShell Snapin. Exception: " + $.Exception.Message);
} } " was run: "System.Exception: Failure cleaning up SearchFoundation Data
folder. - C:\Program Files\Microsoft\Exchange
Server\V15\Bin\Search\Ceres\HostController\Data - Exception calling "Delete"
with "2" argument(s): "Access to the path
'Microsoft.ClientResourceView.FlowService.dll' is denied."
At Microsoft.Exchange.Configuration.Tasks.Task.ThrowError(Exception exception,
ErrorCategory errorCategory, Object target, String helpUrl)
atMicrosoft.Exchange.Management.Deployment.WriteExchangeSetupLog.InternalProcessR
cord() at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b
_91_1()
at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String
funcName, Action func, Boolean terminatePipelineIfFailed)".


The Exchange Server setup operation didn't complete. More details can be found
in ExchangeSetup.log located in the <SystemDrive>:\ExchangeSetupLogs folder.

· 4 ·
10 |1000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Hi, @jennylee-7288
Since you have marked an answer to the question,did the problem get resolved?

0 Votes 0 ·


He solved the first 2 errors I got so I get a little further everytime, but getting a new error I’ll have to try to fix in the morning.
So he solved my original question. Still getting new errors

0 Votes 0 ·

Sorry to hear that.

According to the error message "Access to the path 'Microsoft.ClientResourceView.FlowService.dll' is denied.",
I suppose that the file may be locked by some services or anti-virus software(which you should have disabled)
Would you use Process Explorer to check which service is using this dll file?
You may download this tool and search for the name of the dll file.


0 Votes 0 ·
Show more comments
jennylee-7288 avatar image
0 Votes"
jennylee-7288 answered ·

I was in the process of running it again before I went to bed, I stopped backup services, antivirus was already stopped. Here are the errors: I can't put in reply it won't fit: Mailbox role: Mailbox service 100% FAILED
Mailbox role: Mailbox service 100%
FAILED
The following error was generated when "$error.Clear();
If (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated) {
$arbUsers = @(get-user -Filter {lastname -eq "MSExchApproval
1f05a927-3be2-4fb9-aa03-b59fe3b56f4c"} -IgnoreDefaultScope -ResultSize 1);
If ($arbUsers.Length -ne 0) { $mbxname = $arbUsers[0].name;
$mbxs = @( get-mailbox -arbitration -Filter {name -eq $mbxname} -IgnoreDefaultScope
-resultSize 1 ); if ( $mbxs.length -eq 0) { $dbs = @(get-MailboxDatabase
-Server:$RoleFqdnOrName -DomainController $RoleDomainController);
If ($dbs.Length -ne 0) { enable-mailbox -Arbitration -identity $arbUsers[0]
-database $dbs[0].Identity; } } } } " was run: "Microsoft.Exchange.Data.DataValidationException: ExternalEmailAddress is mandatory on MailUser. At Microsoft.Exchange.Data.Directory.ADDataSession.Save(ADObject instanceToSave,
IEnumerable`1 properties, Boolean bypassValidation) at icrosoft.Exchange.Data.Directory.Recipient.ADRecipientObjectSession.Save(ADReci
Pient instanceToSave, String callerFilePath, Int32 callerFileLine, String memberName)
At Microsoft.Exchange.Data.Directory.Recipient.ADRecipientObjectSession.Microsoft.E
xchange.Data.IConfigDataProvider.Save(IConfigurable
instance, String callerFilePath, Int32 callerFileLine, String memberName)
at Microsoft.Exchange.Management.RecipientTasks.EnableMailbox.PrepareRecipientObjec
t(ADUser& user) at Microsoft.Exchange.Management.RecipientTasks.EnableRecipientObjectTask`2.Prepare
DataObject() at Microsoft.Excha ge.Configuration.Tasks.SetTaskBase`1.InternalValidate()
At Microsoft.Exchange.Configuration.Tasks.RecipientObjectActionTask`2.InternalValid
ate() at Microsoft.Exchange.Management.RecipientTasks.EnableMailbox.InternalValidate()
at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__91_1()
at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String
funcName, Action func, Boolean terminatePipelineIfFailed)".

· 3 ·
10 |1000 characters needed characters left characters exceeded

Up to 10 attachments (including images) can be used with a maximum of 3.0 MiB each and 30.0 MiB total.

Hi, @jennylee-7288

I noticed that you have created a new thread here: https://docs.microsoft.com/answers/questions/304339/exchange-2016-cu-19-update-failed-on-mailbox-servi.html
Please follow up on the new thread.


0 Votes 0 ·

I did follow up. I had to post my response in the Answer area because it wouldn't take my response.

0 Votes 0 ·

Since Comments have a limit of 1000 characters, please post a new answer if the text is over 1000.

Sorry for the inconvenience.
And hope your issue will be resolved soon.

0 Votes 0 ·