Probleme mit der Installation von Exchange 2016 on premise

Wenn die Exchange2016-Installation mit einem Fehler endet

Eine Exchange2016-Installation kann fehlschlagen. Dabei ist es nicht entscheidend, ob die Installation via PowerShell oder Gui gestartet wird.

Damit es zu möglichst keinen Fehlern kommt sollten folgende Punkte beachtet werden:

Vorbereitung

Installation

  • Vor der Exchange2016-Installation unbedingt den Virenscanner deaktivieren beziehungsweise alternativ die Exchange-Verzeichnisse vom Virenscan ausschliessen.

Es klingt trivial, wird aber oft vergessen;
Sobald von der Exchange-Installation die erste Datenbank anlegt wird, nimmt der Virenscanner seinen Dienst auf. Er scannt das Datenbankfile als File und nicht als Datenbank. Sobald der Virenscanner das Datenbankfile im Zugriff hat, ist es für den Exchange-Datenbankservice nicht mehr verfügbar. Die Datenbank kommt in einen Fehlerzustand.

Tritt dieses Verhalten während der Installationsphase ein, so führt es in der Regel immer zu einem Abbruch der Installation.

Exchange 2016 Installation

Error

Error: The following error was generated when „$error.Clear(); if (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated) { $mailboxId = [Microsoft.Exchange.Management.Migration.MigrationBatchIdParameter]::MigrationMailboxName; $dispName = „Microsoft Exchange Migration“; $mbxs = @(Get-Mailbox -Arbitration -DomainController $RoleDomainController -Filter {Name -eq $mailboxId}); $migrationMailbox = $null;if ($mbxs.Length -eq 0) { Write-ExchangeSetupLog -Info („Retrieving mailbox databases on Server=$RoleFqdnOrName.“); $dbs = @(Get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController); if ($dbs.Length -ne 0) { Write-ExchangeSetupLog -Info („Retrieving users with Name=$mailboxId.“); $arbUsers = @(Get-User -Filter {Name -eq $mailboxId} -IgnoreDefaultScope -ResultSize 1); if ($arbUsers.Length -ne 0) { Write-ExchangeSetupLog -Info („Enabling mailbox $mailboxId.“); $migrationMailbox = Enable-Mailbox -Arbitration -Identity $arbUsers[0] -DisplayName $dispName -database $dbs[0].Identity; } } } else { $migrationMailbox = $mbxs[0]; }# Set the Organization Capabilities and quotas needed for this mailbox if ($migrationMailbox -ne $null) { Set-Mailbox -Arbitration -Identity $migrationMailbox -ProhibitSendReceiveQuota 300MB -ProhibitSendQuota 300MB -IssueWarningQuota 150MB -RecoverableItemsQuota 30GB -RecoverableItemsWarningQuota 20GB -UseDatabaseQuotaDefaults $false -SCLDeleteEnabled $false -SCLJunkEnabled $false -SCLQuarantineEnabled $false -SCLRejectEnabled $false -HiddenFromAddressListsEnabled $true -DisplayName $dispName -Management:$true -Force; } else { Write-ExchangeSetupLog -Info („Cannot find migration mailbox with name=$mailboxId.“); } } “ was run: „Microsoft.Exchange.Data.DataValidationException: Database is mandatory on UserMailbox.“.Error: The following error was generated when „$error.Clear(); if (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated) { $mailboxId = [Microsoft.Exchange.Management.Migration.MigrationBatchIdParameter]::MigrationMailboxName; $dispName = „Microsoft Exchange Migration“; $mbxs = @(Get-Mailbox -Arbitration -DomainController $RoleDomainController -Filter {Name -eq $mailboxId}); $migrationMailbox = $null;if ($mbxs.Length -eq 0) { Write-ExchangeSetupLog -Info („Retrieving mailbox databases on Server=$RoleFqdnOrName.“); $dbs = @(Get-MailboxDatabase -Server:$RoleFqdnOrName -DomainController $RoleDomainController); if ($dbs.Length -ne 0) { Write-ExchangeSetupLog -Info („Retrieving users with Name=$mailboxId.“); $arbUsers = @(Get-User -Filter {Name -eq $mailboxId} -IgnoreDefaultScope -ResultSize 1); if ($arbUsers.Length -ne 0) { Write-ExchangeSetupLog -Info („Enabling mailbox $mailboxId.“); $migrationMailbox = Enable-Mailbox -Arbitration -Identity $arbUsers[0] -DisplayName $dispName -database $dbs[0].Identity; } } } else { $migrationMailbox = $mbxs[0]; }# Set the Organization Capabilities and quotas needed for this mailbox if ($migrationMailbox -ne $null) { Set-Mailbox -Arbitration -Identity $migrationMailbox -ProhibitSendReceiveQuota 300MB -ProhibitSendQuota 300MB -IssueWarningQuota 150MB -RecoverableItemsQuota 30GB -RecoverableItemsWarningQuota 20GB -UseDatabaseQuotaDefaults $false -SCLDeleteEnabled $false -SCLJunkEnabled $false -SCLQuarantineEnabled $false -SCLRejectEnabled $false -HiddenFromAddressListsEnabled $true -DisplayName $dispName -Management:$true -Force; } else { Write-ExchangeSetupLog -Info („Cannot find migration mailbox with name=$mailboxId.“); } } “ 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__b() at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)“.