Exchange 2013 fails to install and then when i get it installed I cant connect to the console administrative center

I installed Exchange 2013 multiple times and have has subsequent problems getting the install to work properly. I am sharing 2 of the most helpful tools for getting things to work properly. Beginning with the failed install, after deleting the old attributes you may find you cant prepare Schema, AD, OR domain. If this instance, I simple used the Exchange Disk and ran the commands directly on the root DC.

Second, once you get to the prerequisite checker and it fails, you may find an additional failure there. If you there is due to problems with “well known security objects, this script actual works well for Exchange 2013. The script is republished from this article at the bottom of the post

The final item of enormous help was the help when the console does not work after the install is complete. Neither the CAS server or MB server would connect. the error was an RBAC, permissions related error.  review you c:\exchangesetuplogs to make sure you have a fix on the issue.

the command to fix this issue is  turned out to be

* Add-PSSnapin *setup

*  Install-CannedRbacRoleAssignments -InvocationMode Install -Verbose

This is supposed to be run only as a last resort but really saved my install. Review the source documentation

 

 

 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Get Microsoft Exchange Container
$objDE = New-Object System.DirectoryServices.DirectoryEntry
$ExchangeDN = [string]::Concat(“LDAP://CN=Microsoft Exchange,CN=Services,CN=Configuration,”, $objDE.distinguishedName)
$objCN = New-Object System.DirectoryServices.DirectoryEntry($ExchangeDN)
 
$gp = [Reflection.Bindingflags]::GetProperty
 
# get otherWellKnownObjects Collection
$objCol = $objCN.otherWellKnownObjects
$delCount = 0
 
# Walk though the Collection backwards (always do that when deleting items)
for ($i=$objCol.Count-1; $i -ge 0; $i–)
{
    $objWKO = $objCol[$i]
    $objType = $objWKO.GetType()
    # Get the distinguishedName
    $DNString = $objType.InvokeMember(“DNString”, $gp, $null, $objWKO, $null)
 
    $BV = $objType.InvokeMember(“BinaryValue”, $gp, $null, $objWKO, $null)
    $Guid = [GUID][System.BitConverter]::ToString($BV).Replace(“-“, “”)
 
    Write-Host “DNString: $DNString”
    Write-Host “Guid: $Guid”
 
    # Check if the item was deleted
    if ($DNString.Contains(“0ADEL”))
    {
        Write-Host “This is a Deleted Item” -foregroundcolor Red
        # Remove the item (WARNING: No Confirmation asked)
        $objCol.RemoveAt($i)
        Write-Host “Object Removed” -foregroundcolor Red
        $DelCount++
    }
}
 
# Did we delete something?
if ($DelCount -gt 0)
{
    Write-Host “Commiting Changes” -foregroundcolor Blue
    # Commit changes, remove this line if you just want to test
    # If you don’t commit you will not delete anything
    $objCN.SetInfo()
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s