ampersand sign in NETBIOS domain name causing Exchange 2010 SP1 install issues

Published:
Updated:

I am posting this in case anyone runs into similar issues that I did, this may save you a lot of grief:


Condition:

1. Your NetBIOS domain name contains an ampersand "&" character.  (e.g. AT&T)

2. You've tried to run any Microsoft installation that requires use of XML scripts.  In my case, this was during an Exchange 2010 SP1 install.


Description:

During our attempt in upgrading Exchange 2010 RTM to SP1, we were fine with the upgrade and were able to install CAS and Hub Transport roles without any issues.  However the Mailbox role did not install properly and the error messages suggest that it failed while executing "ManageScheduledTask.ps1" and "CheckDatabaseRedundancy.ps1" -- both of which make use of XML scripts.  This is caused by the "&" sign in our NetBIOS domain name which actually means something in XML and "&" should be used when a literal "&" is required.


Resolutions to consider:

1. Create a child domain, create an account in that child domain and assign this account appropriate Exchange permission to carry on with the install.  That worked for us.


2. If you're an XML expert I'd imagine that modifying the XML code appropriately to include "&" in place of the "&" will work as well.


3. Certain applications will allow installation to complete when logged on as "local administrator" 


In speaking to Microsoft CritSit, this has happened to many Microsoft customers that have "&" in their NETBios domain name and had issues with products such as SMS/Config Mgr. / team foundation server, etc.  If you check MS knowledgebase, there is a KB article suggest that "&" is NOT a illegal character... http://support.microsoft.com/kb/909264 .


Sample Error in the log:

[11/23/2010 03:39:57.0176] [2] Unexpected Error

[11/23/2010 03:39:57.0176] [2] [ManageScheduledTask.ps1] Create-TaskUsingCOM: Task 'Database One Copy Alert' was not registered successfully on server 'your-server-name'.

[11/23/2010 03:39:57.0176] [2] Unexpected Error

[11/23/2010 03:39:57.0176] [2] [ManageScheduledTask.ps1] Failed to create the task.

[11/23/2010 03:39:57.0192] [1] The following 11 error(s) occurred during task execution:

[11/23/2010 03:39:57.0192] [1] 0.  ErrorRecord: Cannot convert value "<?xml version="1.0" encoding="UTF-16"?>

<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">

  <RegistrationInfo>

    <!-- <Date>2010-01-15T03:00:00</Date> -->

      <Date>2010-11-22T22:39:47</Date>

    <!-- <Author>SDIMEB-DOM\administrator</Author> -->

      <Author>S&WCHSC\userid</Author>

    <Description>Database redundancy monitoring task.</Description>

  </RegistrationInfo>

  <Triggers>

    <TimeTrigger>

      <Repetition>

        <Interval>PT1H</Interval>

        <StopAtDurationEnd>false</StopAtDurationEnd>

      </Repetition>

      <!-- <StartBoundary>2010-01-15T03:00:00</StartBoundary> -->

        <StartBoundary>2010-11-22T22:41:47</StartBoundary>

      <ExecutionTimeLimit>PT2H</ExecutionTimeLimit>

      <Enabled>true</Enabled>

    </TimeTrigger>

  </Triggers>

  <Principals>

    <Principal id="Author">

      <UserId>NT AUTHORITY\SYSTEM</UserId>

<!--      <LogonType>Password</LogonType>    -->

      <RunLevel>HighestAvailable</RunLevel>

    </Principal>

  </Principals>

  <Settings>

    <MultipleInstancesPolicy>Queue</MultipleInstancesPolicy>

    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>

    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>

    <AllowHardTerminate>false</AllowHardTerminate>

    <StartWhenAvailable>true</StartWhenAvailable>

    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>

    <IdleSettings>

      <StopOnIdleEnd>true</StopOnIdleEnd>

      <RestartOnIdle>false</RestartOnIdle>

    </IdleSettings>

    <AllowStartOnDemand>true</AllowStartOnDemand>

    <Enabled>true</Enabled>

    <Hidden>false</Hidden>

    <RunOnlyIfIdle>false</RunOnlyIfIdle>

    <WakeToRun>true</WakeToRun>

    <ExecutionTimeLimit>PT2H</ExecutionTimeLimit>

    <Priority>7</Priority>

      <!-- <RestartOnFailure>

      <Interval>PT5M</Interval>

      <Count>5</Count>

    </RestartOnFailure> -->

  </Settings>

  <Actions Context="Author">

    <Exec>

      <!-- <Command>D:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command> -->

        <Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command>

      <!-- <Arguments>-NonInteractive -WindowStyle Hidden -command "D:\test.ps1 -MonitoringContext -ErrorAction:Continue"</Arguments> -->

        <Arguments>-NonInteractive -WindowStyle Hidden -command "&amp; 'E:\Program Files\Microsoft\Exchange\V14\Scripts\CheckDatabaseRedundancy.ps1' -MonitoringContext -ShowDetailedErrors -ErrorAction:Continue"</Arguments>

      <!-- <WorkingDirectory>D:\</WorkingDirectory> -->

    </Exec>

  </Actions>

</Task>" to type "System.Xml.XmlDocument". Error: "An error occurred while parsing EntityName. Line 7, position 12."


Cheers

0
4,653 Views

Comments (1)

Author

Commented:
It should now be in excess of 300 words.  Can it be published?

Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.