Exchange 2013 Install Failure

I am REALLY struggling with this exchange install.  

Current exchange environment is Exchange 2010 SP3.

I am getting an error when trying to install the Mailbox Role: Mailbox Service.  I can see only one "error" but at this stage i'm sure my eyes aren't catching everything.

--------

"Address list or global address list "livingstonisd.com/Configuration/Deleted Objects/HIgh School Staff List

DEL:acf86229-9d20-4e80-b99b-47daf139e822" was not found. Please make sure you typed the identity correctly.".

----------

I cannot seem to find this object its referencing.  I have checked in ADSI on AD inside of configuration and I cannot find THIS address book.  All of my ones that are supposed to be there are.

I may well have this one pegged wrong.... here is the entire error so someone can tell me if I simply missed my problem in amongst all this.

-------------

Error:
The following error was generated when "$error.Clear(); 
          if (!$RoleIsDatacenter)
          {
            $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)
              {
                Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2010 or older; will create a new OAB");
                $createNewOab = $true;
                $oabName = $defaultOab.Name + " (Ex2012)";
                $oabAddressList = $defaultOab.AddressLists;
                $oabGlobalWebDistribution = $defaultOab.GlobalWebDistributionEnabled;
                $oabConfiguredAttributes = $defaultOab.ConfiguredAttributes;
              }
              else
              {
                Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2012 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 -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: "Address list or global address list "livingstonisd.com/Configuration/Deleted Objects/HIgh School Staff List
DEL:acf86229-9d20-4e80-b99b-47daf139e822" was not found. Please make sure you typed the identity correctly.".

Error:
The following error was generated when "$error.Clear(); 
          if (!$RoleIsDatacenter)
          {
            $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)
              {
                Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2010 or older; will create a new OAB");
                $createNewOab = $true;
                $oabName = $defaultOab.Name + " (Ex2012)";
                $oabAddressList = $defaultOab.AddressLists;
                $oabGlobalWebDistribution = $defaultOab.GlobalWebDistributionEnabled;
                $oabConfiguredAttributes = $defaultOab.ConfiguredAttributes;
              }
              else
              {
                Write-ExchangeSetupLog -Info ("Existing OAB is Exchange 2012 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 -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: "Cannot bind argument to parameter 'Identity' because it is null.".

---------------------------

I am completely lost.  Thanks for any and all help/suggestions.

August 3rd, 2013 11:43pm

   $oabName = $defaultOab.Name + " (Ex2012)";

Hi,
That tells us that you are trying to install Exchange 2013 RTM.
Do note that you CU1 was the first build of EX13 where coexistence with earlier versions was supported.
Now when CU2 is out, I highly recommend that you install that build, even if I don't think using wrong build is the reason for your problem.

Can you check your OABs and make sure that they don't have any orphaned Address Lists assigned to them?



Free Windows Admin Tool Kit Click here and download it now
August 4th, 2013 2:35am

First, how do I check the offline address book for orphaned address lists?  This is not a process I am familiar with, which may well be my problem.

Secondly, I will look for a newer build of Exchange to install from.  I am not sure there is one available, but it never hurts to double check.

If anyone has any other recommendations, please let me know.

August 4th, 2013 1:05pm

Hi,
I posted a link to CU2 download in my previous posts and that is the latest build :)

For the OABs...Just run: Get-OfflineAddressBook | fl Name, AddressLists

Free Windows Admin Tool Kit Click here and download it now
August 4th, 2013 1:54pm

Well, changing the Offline Address Book to only look at Default Global Address List seems to have solved that problem.  I'm still not sure how to get rid of entries that were listed there, but not in the gui.. but having all the other address lists in there was redundant anyway.

Thanks for stepping through this with me!

August 4th, 2013 2:39pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics