Exchange 2010 SP1 upgrade error when installing mailbox role

  • Thread starter JeffL57
  • Start date Views 1,418
J

JeffL57



I am running server 2008 R2. Upgrading exchange 2010 to SP1 i get the following error at the mailbox role install:
Mailbox Server Role FAILED
The following error was generated when "$error.Clear();
if ($RoleCreatePublicFolderDatabase)
{
$publicDB = get-PublicFolderDatabase -Server:$RoleFqdnOrName -ErrorA
ction SilentlyContinue;
$DB = get-MailboxDatabase -Server:$RoleFqdnOrName -ErrorAction Silen
tlyContinue;
if ($publicDB -and $DB)
{
set-mailboxdatabase `
-Identity:$DB.Identity `
-publicFolderDatabase:$publicDB.Identity `
-DomainController $RoleDomainController
}
}
" was run: "Cannot bind argument to parameter 'Identity' because it is n
ull.".
 
F

Frank.Wang



Hi JeffL57,

You can upgrade Exchange 2010 SP1 from RTM.

Could you please reboot the server and install SP1 again?

Frank Wang
 
J

JeffL57



Hi Frank,

I have rebooted the server and attempted to install SP1 again. i received the same error as noted above.

Part of the setup log is attached here:

[09/22/2010 19:23:37.0596] [2] Saving object "Public Folder Database 1139950614" of type "PublicFolderDatabase" and state "New".
[09/22/2010 19:23:37.0612] [2] Previous operation run on domain controller 'MCADDNSTDCEXC02.mclane.mclaneco.com'.
[09/22/2010 19:23:37.0643] [2] Searching objects "Public Folder Database 1139950614" of type "PublicFolderDatabase" under the root "$null".
[09/22/2010 19:23:37.0659] [2] Previous operation run on domain controller 'MCADDNSTDCEXC02.mclane.mclaneco.com'.
[09/22/2010 19:23:37.0674] [2] Searching objects of type "MailboxDatabase" with filter "$null", scope "SubTree" under the root "$null".
[09/22/2010 19:23:37.0893] [2] Searching objects of type "OfflineAddressBook" with filter "$null", scope "SubTree" under the root "$null".
[09/22/2010 19:23:37.0955] [2] Searching objects of type "AdministrativeGroup" with filter "$null", scope "OneLevel" under the root "Exchange Administrative Group (FYDIBOHF23SPDLT)".
[09/22/2010 19:23:37.0955] [2] Previous operation run on domain controller 'MCADDNSTDCEXC02.mclane.mclaneco.com'.
[09/22/2010 19:23:37.0971] [2] Checking the existence of directory "C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Public Folder Database 1139950614" on Server "MCEXCHMBXTDC04.mclane.mclaneco.com".
[09/22/2010 19:23:37.0971] [2] New directory "C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Public Folder Database 1139950614" is being created on server "MCEXCHMBXTDC04.mclane.mclaneco.com".
[09/22/2010 19:23:37.0971] [2] Checking the existence of directory "C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Public Folder Database 1139950614" on Server "MCEXCHMBXTDC04.mclane.mclaneco.com".
[09/22/2010 19:23:37.0971] [2] Set access control for directory "C:\Program Files\Microsoft\Exchange Server\V14\Mailbox\Public Folder Database 1139950614" on server "MCEXCHMBXTDC04.mclane.mclaneco.com".
[09/22/2010 19:23:37.0971] [2] Ending processing new-publicfolderdatabase
[09/22/2010 19:23:37.0971] [1] Executing:
if ($RoleCreatePublicFolderDatabase)
{
$publicDB = get-PublicFolderDatabase -Server:$RoleFqdnOrName -ErrorAction SilentlyContinue;
$DB = get-MailboxDatabase -Server:$RoleFqdnOrName -ErrorAction SilentlyContinue;
if ($publicDB -and $DB)
{
set-mailboxdatabase `
-Identity:$DB.Identity `
-publicFolderDatabase:$publicDB.Identity `
-DomainController $RoleDomainController
}
}

[09/22/2010 19:23:37.0971] [2] Active Directory session settings for 'Get-PublicFolderDatabase' are: View Entire Forest: 'True', Configuration Domain Controller: 'MCADDNSTDCEXC02.mclane.mclaneco.com', Preferred Global Catalog: 'MCADDNSTDCEXC02.mclane.mclaneco.com', Preferred Domain Controllers: '{ MCADDNSTDCEXC02.mclane.mclaneco.com }'
[09/22/2010 19:23:37.0971] [2] Beginning processing get-PublicFolderDatabase -Server:'MCEXCHMBXTDC04.mclane.mclaneco.com' -ErrorAction:'SilentlyContinue'
[09/22/2010 19:23:37.0986] [2] Searching objects "MCEXCHMBXTDC04.mclane.mclaneco.com" of type "Server" under the root "$null".
[09/22/2010 19:23:38.0002] [2] Previous operation run on domain controller 'MCADDNSTDCEXC02.mclane.mclaneco.com'.
[09/22/2010 19:23:38.0018] [2] Searching objects of type "PublicFolderDatabase" with filter "(Exists(PublicFolderHierarchy))", scope "SubTree" under the root "MCEXCHMBXTDC04".
[09/22/2010 19:23:38.0111] [2] Previous operation run on domain controller 'MCADDNSTDCEXC02.mclane.mclaneco.com'.
[09/22/2010 19:23:38.0111] [2] Preparing to output objects. The maximum size of the result set is "unlimited".
[09/22/2010 19:23:38.0142] [2] Ending processing get-PublicFolderDatabase
[09/22/2010 19:23:38.0142] [2] Active Directory session settings for 'Get-MailboxDatabase' are: View Entire Forest: 'True', Configuration Domain Controller: 'MCADDNSTDCEXC02.mclane.mclaneco.com', Preferred Global Catalog: 'MCADDNSTDCEXC02.mclane.mclaneco.com', Preferred Domain Controllers: '{ MCADDNSTDCEXC02.mclane.mclaneco.com }'
[09/22/2010 19:23:38.0142] [2] Beginning processing get-MailboxDatabase -Server:'MCEXCHMBXTDC04.mclane.mclaneco.com' -ErrorAction:'SilentlyContinue'
[09/22/2010 19:23:38.0142] [2] Searching objects "MCEXCHMBXTDC04.mclane.mclaneco.com" of type "Server" under the root "$null".
[09/22/2010 19:23:38.0174] [2] Previous operation run on domain controller 'MCADDNSTDCEXC02.mclane.mclaneco.com'.
[09/22/2010 19:23:38.0174] [2] Searching objects of type "MailboxDatabase" with filter "$null", scope "SubTree" under the root "MCEXCHMBXTDC04".
[09/22/2010 19:23:38.0267] [2] Previous operation run on domain controller 'MCADDNSTDCEXC02.mclane.mclaneco.com'.
[09/22/2010 19:23:38.0267] [2] Preparing to output objects. The maximum size of the result set is "unlimited".
[09/22/2010 19:23:38.0423] [2] Ending processing get-MailboxDatabase
[09/22/2010 19:23:38.0439] [1] The following 1 error(s) occurred during task execution:
[09/22/2010 19:23:38.0439] [1] 0. ErrorRecord: Cannot bind argument to parameter 'Identity' because it is null.
[09/22/2010 19:23:38.0439] [1] 0. ErrorRecord: System.Management.Automation.ParameterBindingValidationException: Cannot bind argument to parameter 'Identity' because it is null.
at System.Management.Automation.ParameterBinderBase.ValidateNullOrEmptyArgument(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, Type argumentType, Object parameterValue, Boolean recurseIntoCollections)
at System.Management.Automation.ParameterBinderBase.BindParameter(CommandParameterInternal parameter, CompiledCommandParameter parameterMetadata, ParameterBindingFlags flags)
at System.Management.Automation.CmdletParameterBinderController.BindParameter(CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags)
at System.Management.Automation.CmdletParameterBinderController.BindParameter(UInt32 parameterSets, CommandParameterInternal argument, MergedCompiledCommandParameter parameter, ParameterBindingFlags flags)
at System.Management.Automation.CmdletParameterBinderController.BindParameters(UInt32 parameterSets, Collection`1 arguments, CommandMetadata commandMetadata)
at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParametersNoValidation(Collection`1 arguments)
at System.Management.Automation.CmdletParameterBinderController.BindCommandLineParameters(Collection`1 arguments)
at System.Management.Automation.CommandProcessor.BindCommandLineParameters(CommandParameterInternal[] parameters)
at System.Management.Automation.CommandProcessor.Prepare(CommandParameterInternal[] parameters)
at System.Management.Automation.CommandProcessorBase.DoPrepare(CommandParameterInternal[] parameters)
at System.Management.Automation.Internal.PipelineProcessor.Start(Boolean incomingStream)
at System.Management.Automation.Internal.PipelineProcessor.SynchronousExecuteEnumerate(Object input, Hashtable errorResults, Boolean enumerate)
[09/22/2010 19:23:38.0454] [1] [ERROR] The following error was generated when "$error.Clear();
if ($RoleCreatePublicFolderDatabase)
{
$publicDB = get-PublicFolderDatabase -Server:$RoleFqdnOrName -ErrorAction SilentlyContinue;
$DB = get-MailboxDatabase -Server:$RoleFqdnOrName -ErrorAction SilentlyContinue;
if ($publicDB -and $DB)
{
set-mailboxdatabase `
-Identity:$DB.Identity `
-publicFolderDatabase:$publicDB.Identity `
-DomainController $RoleDomainController
}
}
" was run: "Cannot bind argument to parameter 'Identity' because it is null.".
[09/22/2010 19:23:38.0454] [1] [ERROR] Cannot bind argument to parameter 'Identity' because it is null.
[09/22/2010 19:23:38.0454] [1] [ERROR-REFERENCE] Id=SystemAttendantDependent___952169dbb47940388c375ba40fc0c835 Component=EXCHANGE14:\Current\Release\Shared\Datacenter\Setup
[09/22/2010 19:23:38.0454] [1] Setup is stopping now because of one or more critical errors.
[09/22/2010 19:23:38.0454] [1] Finished executing component tasks.
[09/22/2010 19:23:38.0470] [1] Ending processing Install-MailboxRole
[09/22/2010 19:26:44.0829] [0] End of Setup
[09/22/2010 19:26:44.0829] [0] **********************************************
 
J

JeffL57

Help! SOS Help plase anyone have a clue as to what the fix for this Is?
 
C

cyborganic



For whatever it's worth, I had the Exchange 2010 SP1 upgrade barf on the Mailbox role in the same way, with the same log entries. We upgraded from 2010 RTM, 2 mailbox databases, 1 public folder database. Before that we upgraded another server, a passive DAG member with no public folder databases, and had no problems.

On the server where the upgrade did not complete, I was able to start the information store service manually and mount all the databases. Not the best situation but it bought some time to figure out what happened and how to fix it.

One clue that really didn't offer much relief, just curiosity, were in the lines from the install script log that you pasted above. The value of Get-MailboxDatabase is assigned to the $DB variable. If you run the powershell cmdlet Get-MailboxDatabase by itself, it returns all mailbox database objects on -Server, as a collection. If there is more than one mailbox database on the server, the Identity property from the output from Get-MailboxDatabase is null. So it seems to me that the generated install script itself is in error.

I don't know what the ultimate solution is but it's looking more and more like a disaster-recovery scenario to get a clean install of SP1 on the server where the setup didn't complete, even though everything seems okay.
 
J

JeffL57



Well yes and I solved the problem by reinstalling SP1 after successfully removing exchange and the server from the exchange AD objects. In desperation I appended the Configured version key under the mailbox role in the registry and removed the watermark and install keys, this then allowed me to uninstall exchaneg and the server from the AD Exchange container. rebooted the server and then ran a very clean SP1 install, added the server Bback into the DAG and poof all is working as it should.

Thanksto all who posted to help out or share their knowledge!

Jeffrey S. Lefever
 

Top