I just upgraded Exchange RTM 2013 to CU1 and at stage 11 (client access) the install failed after about 90%.
The following error message was produced:
Exchange
Server component Mailbox role: Client Access service failed.
Error: Error:
The following error was generated when "$error.Clear();
update-WebServicesVirtualDirectoryVersion -DomainController
$RoleDomainController;
$BEVdirIdentity =
$RoleNetBIOSName + "\EWS (Exchange Back End)";
$be =
get-WebServicesVirtualDirectory -ShowMailboxVirtualDirectories -Identity
$BEVdirIdentity -DomainController $RoleDomainController -ErrorAction
SilentlyContinue;
if ($be -eq $null)
{
$BackEndPort=":444";
$urlToUse =
"https://" + $RoleFqdnOrName + $BackEndPort +
"/ews/exchange.asmx";
new-WebServicesVirtualDirectory -Role Mailbox -WebSiteName "Exchange Back
End" -windowsAuthentication:$true -WSSecurityAuthentication:$true
-OAuthAuthentication:$false -BasicAuthentication:$false -InternalNLBBypassUrl
$urlToUse -DomainController $RoleDomainController -Force -GzipLevel High;
}
else
{
$be | set-WebServicesVirtualDirectory
-windowsAuthentication:$be.WindowsAuthentication
-WSSecurityAuthentication:$be.WSSecurityAuthentication
-OAuthAuthentication:$be.OAuthAuthentication
-BasicAuthentication:$be.BasicAuthentication
}
. "$RoleInstallPath\Scripts\Update-AppPoolManagedFrameworkVersion.ps1"
-AppPoolName:"MSExchangeServicesAppPool" -Version:"v4.0";
" was run: "Cannot bind
argument to parameter 'WindowsAuthentication' because it is null.".<o:p></o:p>
Looks like $be.WindowsAuthentication was returned as blank. I would have been better to design it in such a way that if this is blank, simply replace the value with $true, instead of failing the whole setup.
In any case, I used remove-WebServicesVirtualDirectory on the EWS (Exchange Back End) which will actually force the code to re-create it, this lead to successfull upgrade.
Just as a fyi.