none
Ошибка установки microsoft Exchange 2016 на windows 2012 r2 RRS feed

  • Вопрос

  • Добрый день! Пробовал поднять почту на виртуалке давно, забросил. теперь ставлю на физической машине, получаю такую ошибку на 10 шаге:
    Error:
    The following error was generated when "$error.Clear(); 
              if (!$RoleIsDatacenter -and !$RoleIsDatacenterDedicated)
              {
                $createNewOab = $false;
                $oabName = $null;
                $oabAddressList = $null;
                $oabVdirs = $null;
                $oabGlobalWebDistribution = $false;
                $oabConfiguredAttributes = $null;

                Write-ExchangeSetupLog -Info ("Looking for an existing default OAB");
                $defaultOab = Get-OfflineAddressBook -DomainController:$RoleDomainController | where {$_.IsDefault};
                if ($defaultOab -ne $null)
                {
                  Write-ExchangeSetupLog -Info ("Found a default OAB: " + $defaultOab.Name + "; checking its version");
                  if ($defaultOab.ExchangeVersion.CompareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -lt 0)
                  {
                    $e15Oab = Get-OfflineAddressBook -DomainController:$RoleDomainController | where {$_.ExchangeVersion.CompareTo([Microsoft.Exchange.Data.ExchangeObjectVersion]::Exchange2012) -eq 0};
                    if ($e15Oab -eq $null)
                    {
                      Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2010 or older; will create a new OAB");
                      $createNewOab = $true;
                      $oabName = $defaultOab.Name + " (Ex2013)";
                      $oabAddressList = $defaultOab.AddressLists;
                      $oabGlobalWebDistribution = $defaultOab.GlobalWebDistributionEnabled;
                      $oabConfiguredAttributes = $defaultOab.ConfiguredAttributes;
                    }
                    else
                    {
                      Write-ExchangeSetupLog -Info ("Already has an existing Exchange 2013 OAB:" + $e15Oab.Name + "; will not create a new OAB");
                    }
                  }
                  else
                  {
                    Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2013 or newer; will not create a new OAB");
                  }
                }
                else
                {
                  Write-ExchangeSetupLog -Info ("Did not find a default OAB; will create one");
                  $createNewOab = $true;

                  $oabName = [Microsoft.Exchange.Data.Directory.SystemConfiguration.OfflineAddressBook]::DefaultName;
                  $nonDefaultOabWithDefaultName = Get-OfflineAddressBook $oabName -DomainController:$RoleDomainController -ErrorAction SilentlyContinue | where {$_.IsDefault -eq $false};
                  if ($nonDefaultOabWithDefaultName -ne $null)
                  {
                    $createNewOab = $false;
                    Write-ExchangeSetupLog -Warning `
                      ("Offline address book " + `
                      $nonDefaultOabWithDefaultName.Name + `
                      " already exists: " + `
                      $nonDefaultOabWithDefaultName.DistinguishedName + `
                      ". Use administrative tools to change it to default OAB.");
                  }

                  $allGals = @(Get-GlobalAddressList -DomainController:$RoleDomainController | where {$_.IsDefaultGlobalAddressList});
                  if ($allGals -eq $null -or $allGals.Count -eq 0)
                  {
                    $createNewOab = $false;
                    Write-ExchangeSetupLog -Warning `
                      ("Couldn't find the default global address list. The default offline address book can't be created.");
                  }
                  elseif ($allGals.Count -gt 1)
                  {
                    $createNewOab = $false;
                    Write-ExchangeSetupLog -Warning `
                      ("Found " + $allGals.Count + " default global address lists. You can have only one default global address list in your organization. The default offline address book will not be created.");
                  }
                  else
                  {
                    $oabAddressList = $allGals[0];
                    Write-ExchangeSetupLog -Info ("OAB will be based on default GAL: " + $oabAddressList.Name);
                  }
                }

                if ($createNewOab)
                {
                  if ($oabGlobalWebDistribution -eq $false)
                  {
                    $currentAdSiteDn = (Get-ExchangeServer $RoleFqdnOrName -DomainController:$RoleDomainController).Site.DistinguishedName;
                    $allOabVdirs = @(Get-OabVirtualDirectory -ADPropertiesOnly -DomainController:$RoleDomainController);
                    $e15MinimumServerVersion = New-Object Microsoft.Exchange.Data.ServerVersion([Microsoft.Exchange.Data.Directory.SystemConfiguration.Server]::E15MinVersion);
                    if ($allOabVdirs -ne $null -and $allOabVdirs.Count -gt 0)
                    {
                      foreach ($oabVdir in $allOabVdirs)
                      {
                        if ([Microsoft.Exchange.Data.ServerVersion]::Compare($oabVdir.AdminDisplayVersion, $e15MinimumServerVersion) -gt 0)
                        {
                          $oabVdirSiteDn = (Get-ExchangeServer $oabVdir.Server -DomainController:$RoleDomainController).Site.DistinguishedName;
                          if ($oabVdirSiteDn -eq $currentAdSiteDn)
                          {
                            $oabVdirs = $oabVdir;
                            break;
                          }
                          elseif ($oabVdirs -eq $null)
                          {
                            $oabVdirs = $oabVdir;
                          }
                        }
                      }
                    }

                    if ($oabVdirs -ne $null)
                    {
                      Write-ExchangeSetupLog -Info ("OAB will be distributed to OAB virtual directory " + $oabVdirs.Name);
                    }
                    else
                    {
                      Write-ExchangeSetupLog -Info ("Could not find any OAB virtual directories; OAB will be configured without distribution.");
                    }
                  }

                  try
                  {
                    Write-ExchangeSetupLog -Info ("Creating new default OAB.");
                    $newOab = New-OfflineAddressBook `
                      -Name $oabName `
                      -AddressLists $oabAddressList `
                      -VirtualDirectories $oabVdirs `
                      -GlobalWebDistributionEnabled $oabGlobalWebDistribution `
                      -IsDefault $true `
                      -DomainController:$RoleDomainController;
                  }
                  catch [Microsoft.Exchange.Data.Directory.ADObjectAlreadyExistsException]
                  {
                    Write-ExchangeSetupLog -Warning ("Tried to create new default OAB but the object already exists; it may have been created by another instance of setup.");
                  }

                  if ($oabConfiguredAttributes -ne $null)
                  {
                    Write-ExchangeSetupLog -Info ("Setting OAB ConfiguredAttributes to: " + $oabConfiguredAttributes);
                    Set-OfflineAddressBook $newOab -ConfiguredAttributes $oabConfiguredAttributes -DomainController:$RoleDomainController;
                  }
                }
              }
            " was run: "Microsoft.Exchange.Data.DataValidationException: Database is mandatory on UserMailbox.
       at Microsoft.Exchange.Data.Directory.ADDataSession.ObjectsFromEntries[TResult](SearchResultEntryCollection entries, String originatingServerName, IEnumerable`1 properties, ADRawEntry dummyInstance)
       at Microsoft.Exchange.Data.Directory.ADGenericPagedReader`1.GetNextPage()
       at Microsoft.Exchange.Data.Directory.ADGenericPagedReader`1.<GetEnumerator>d__0.MoveNext()
       at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
       at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
       at Microsoft.Exchange.Data.Directory.Recipient.ADRecipientObjectSession.FindOrganizationMailboxByCapability(OrganizationCapability capability, QueryFilter optionalFilter)
       at Microsoft.Exchange.Data.Storage.OrganizationMailbox.InternalGetOrganizationMailboxesByCapability(IRecipientSession session, OrganizationCapability capability, QueryFilter optionalFilter)
       at Microsoft.Exchange.ProvisioningAgent.NewOfflineAddressbookProvisioningHandler.FindGeneratingMailbox(String domainController, OrganizationId orgId)
       at Microsoft.Exchange.ProvisioningAgent.NewOfflineAddressbookProvisioningHandler.ProvisionDefaultProperties(IConfigurable readOnlyIConfigurable)
       at Microsoft.Exchange.Provisioning.ProvisioningLayer.ProvisionDefaultPropertiesImpl(Task task, IConfigurable temporaryObject, IConfigurable dataObject, Boolean checkProvisioningLayerAvailability)
       at Microsoft.Exchange.Provisioning.ProvisioningLayer.ProvisionDefaultProperties(Task task, IConfigurable temporaryObject, IConfigurable dataObject, Boolean checkProvisioningLayerAvailability)
       at Microsoft.Exchange.Configuration.Tasks.NewTaskBase`1.InternalStateReset()
       at Microsoft.Exchange.Configuration.Tasks.NewTenantADTaskBase`1.InternalStateReset()
       at Microsoft.Exchange.Configuration.Tasks.Task.<ProcessRecord>b__b()
       at Microsoft.Exchange.Configuration.Tasks.Task.InvokeRetryableFunc(String funcName, Action func, Boolean terminatePipelineIfFailed)".

    Понимаю, что где то на контроллере домена осталась запись с прошлой установки, но где копать? Спасибо!

                  
    21 февраля 2016 г. 16:22

Ответы

  • В этой ветке описано как удалить предыдущую установку. https://social.technet.microsoft.com/Forums/ru-RU/51ca1e22-c500-43a5-aa96-a6731aacb8ed/-exchange-2010-ad-exchange?forum=exchange2010ru Это для всех версий с 2007 одинаково, плюс в вашем случае нужно удалить учётки в разделе users, начинающиеся на systemmailbox{xxxxx... , migration.xxxxxx.... , DiscoverySearchMailbox{xxxx...
    • Изменено Mikhail SartaevMVP 22 февраля 2016 г. 8:32
    • Помечено в качестве ответа moverat 22 февраля 2016 г. 11:34
    22 февраля 2016 г. 8:31

Все ответы

  • В этой ветке описано как удалить предыдущую установку. https://social.technet.microsoft.com/Forums/ru-RU/51ca1e22-c500-43a5-aa96-a6731aacb8ed/-exchange-2010-ad-exchange?forum=exchange2010ru Это для всех версий с 2007 одинаково, плюс в вашем случае нужно удалить учётки в разделе users, начинающиеся на systemmailbox{xxxxx... , migration.xxxxxx.... , DiscoverySearchMailbox{xxxx...
    • Изменено Mikhail SartaevMVP 22 февраля 2016 г. 8:32
    • Помечено в качестве ответа moverat 22 февраля 2016 г. 11:34
    22 февраля 2016 г. 8:31
  • Спасибо большое!
    22 февраля 2016 г. 11:35