Home All Groups Group Topic Archive Search About

Error on adding external smtp email to user

Author
2 Jul 2009 6:56 PM
Vitor Cartaxo
Hi,

Problem: I can't associate an external email to user. The given information
is that the email (smtp) already exists on the exchange.

Source of the problem: The scenario is a parent domain with several child
domains and each one with its Exchange server.
In one child domain, the hard disks broke down and the backups were not
being made. We had to install a new child domain with a new exchange server,
but when we create the new user and the external smtp email is added, the
system gives the information that already exists.

Any ideas?

Thanks,
Vitor cartaxo

Author
2 Jul 2009 8:14 PM
Phillip Windell
"Vitor Cartaxo" <VitorCart***@discussions.microsoft.com> wrote in message
news:242A8061-9E18-40FC-8B0D-630973354571@microsoft.com...

> Source of the problem: The scenario is a parent domain with several child
> domains and each one with its Exchange server.
> In one child domain, the hard disks broke down and the backups were not
> being made. We had to install a new child domain with a new exchange
> server,
> but when we create the new user and the external smtp email is added, the
> system gives the information that already exists.

Just because you create a new domain with the same name does not make it the
*same* domain.  It is just like creating a new PC with the same Machine
Name,...that's doesn't make it the same machine,....creating a new user
account with the same name is still not the same user,....this pattern
follows all throughout the AD "world".

You should have did a "cleanup" in the Forest to remove all traces of the
old Child Domain first,...before you ever created the new Domain with the
same name.   You have made a mess now,...I don't know what to tell you to do
to clean it up.  Hopefully one of the more experienced guys around here can
help with that.  But I suspect you will have to cleanly remove the new
domain that you created,...then clean up the traces from the old one,...then
recreate the new one again.


--
Phillip Windell

The views expressed, are my own and not those of my employer, or Microsoft,
or anyone else associated with me, including my cats.
-----------------------------------------------------
Author
2 Jul 2009 8:37 PM
Ace Fekay [Microsoft Certified Trainer]
Show quote Hide quote
"Vitor Cartaxo" <VitorCart***@discussions.microsoft.com> wrote in message news:242A8061-9E18-40FC-8B0D-630973354571@microsoft.com...
> Hi,
>
> Problem: I can't associate an external email to user. The given information
> is that the email (smtp) already exists on the exchange.
>
> Source of the problem: The scenario is a parent domain with several child
> domains and each one with its Exchange server.
> In one child domain, the hard disks broke down and the backups were not
> being made. We had to install a new child domain with a new exchange server,
> but when we create the new user and the external smtp email is added, the
> system gives the information that already exists.
>
> Any ideas?
>
> Thanks,
> Vitor cartaxo


That's because the email address still exists in the GAL. If the domain is literally gone, but hasn't been cleaned out of AD, then the rest of the forest still thinks it exists. If the whole child domain cannot be recovered (assuming there was only one DC and it broke down, or worse, that the DC was also the Exchange server and there was only one DC in the child domain), then the old child domain must be cleaned out of AD using the Metadata Cleanup procedure outlined in the following article.

Cleanup (Metadata Cleanup) the AD database from the crashed DC or domain - How to remove data in Active Directory after an unsuccessful domain controller demotion
http://support.microsoft.com/kb/216498

Once it's cleaned out, meaning the domain controller and the domain itself, then this info will be propagated throughout the forest.

However, if the email data is important for the company, you can utilize a disk recovery service to recover the whole drive, such as www.ontrack.com. I'm not sure of the costs, but if it the data is important, it will be worth the cost to the company. They can recover RAID systems as well. Simply ship them all the drives in the array and they will reassemble the drives and pull the data off and ship it to you on new drives or USB, depending on how you want it done.

Also, if the email address is or was an internal email address, then you won't be able to create a mail-enabled user with an external email address using an internal domain name the Exchange org is authorized to receive mail on (set in Recipient Policies). However, if you are trying to create a contact or mail-enabled user with an out of organization domain name that your organization is not authorized to receive mail on, then you must go through the metadata cleaup process to remove the domain, as well as remove the reference to the Exchange server in the old domain by using the ADSI Edit utility. It's time consuming and tedious, however I think a recovery service may be your better solution.

How to completely remove a Exchange server or the entire Exchange ...Oct 19, 2004 ... If you cannot run Exchange System Manager, you may use the ADSI Edit snap-in to manually remove the server attributes so that you can try a ...
http://www.msexchange.org/tutorials/Remove-Exchange-server-entire-Exchange-organization.html

How to remove Exchange Server 2003 from your computerTo use the ADSI Edit snap-in to remove an Exchange 2003 server from an Exchange 2003 administrative group, follow these steps: ...
http://support.microsoft.com/kb/833396

Error message when you try to remove Exchange Server from a ...Sep 6, 2006 ... When you try to remove Microsoft Exchange 2000 Server or Exchange Server 2003 ... Warning If you use the ADSI Edit snap-in, the LDP utility, ...
http://support.microsoft.com/kb/924170


--
Ace

This posting is provided "AS-IS" with no warranties or guarantees and confers no rights.

Please reply back to the newsgroup/forum to benefit from collaboration among responding engineers, as well as to help others benefit from your resolution.

Ace Fekay, MCSE 2003 & 2000, MCSA 2003 & 2000, MCSA Messaging, MCT
Microsoft Certified Trainer
ace***@mvps.RemoveThisPart.org
http://twitter.com/acefekay

For urgent issues, you may want to contact Microsoft PSS directly. Please check http://support.microsoft.com for regional support phone numbers.
Author
3 Jul 2009 6:27 AM
Alister
Show quote Hide quote
"Vitor Cartaxo" <VitorCart***@discussions.microsoft.com> wrote in message
news:242A8061-9E18-40FC-8B0D-630973354571@microsoft.com...
> Hi,
>
> Problem: I can't associate an external email to user. The given
> information
> is that the email (smtp) already exists on the exchange.
>
> Source of the problem: The scenario is a parent domain with several child
> domains and each one with its Exchange server.
> In one child domain, the hard disks broke down and the backups were not
> being made. We had to install a new child domain with a new exchange
> server,
> but when we create the new user and the external smtp email is added, the
> system gives the information that already exists.
>
> Any ideas?
>
> Thanks,
> Vitor cartaxo

You can find what entity has the selected email address assigned to it as
follows:

    * Open the Acive Directory Users and Computers Management Console
    * Right Click on the domain > Select Find
    * Select Custom Search in the Find field
    * Select the Advanced tab
    * To find the entity with the email address f***@bloggs.co.uk for
example, enter the following in the LDAP query field:
      (proxyAddresses=smtp:f***@bloggs.co.uk)
    * This will list the entity containing the email address entered.

    * Wild cards can be entered within the email address (*) to return
multiple matches.
    * If you want to view all the email addresses within the results list,
select View > Choose Columns...
and select Proxy Address - doing this in assoication with the query
(proxyAddresses=smt***@bloggs.co.uk) will give you a list
of all entities within the organisation that have an email address,
together with all the email addresses they have.

HTH

Alister
Author
3 Jul 2009 6:15 PM
Mark D. MacLachlan
Alister wrote:

Show quoteHide quote
>
> "Vitor Cartaxo" <VitorCart***@discussions.microsoft.com> wrote in
> message news:242A8061-9E18-40FC-8B0D-630973354571@microsoft.com...
> > Hi,
> >
> > Problem: I can't associate an external email to user. The given
> > information is that the email (smtp) already exists on the exchange.
> >
> > Source of the problem: The scenario is a parent domain with several
> > child domains and each one with its Exchange server.
> > In one child domain, the hard disks broke down and the backups were
> > not being made. We had to install a new child domain with a new
> > exchange  server, but when we create the new user and the external
> > smtp email is added, the system gives the information that already
> > exists.
> >
> > Any ideas?
> >
> > Thanks,
> > Vitor cartaxo
>
> You can find what entity has the selected email address assigned to
> it as follows:
>
>    * Open the Acive Directory Users and Computers Management Console
>    * Right Click on the domain > Select Find
>    * Select Custom Search in the Find field
>    * Select the Advanced tab
>   * To find the entity with the email address f***@bloggs.co.uk for
> example, enter the following in the LDAP query field:
> (proxyAddresses=smtp:f***@bloggs.co.uk)    * This will list the
> entity containing the email address entered.
>
>   * Wild cards can be entered within the email address (*) to return
> multiple matches.    * If you want to view all the email addresses
> within the results list, select View > Choose Columns...  and select
> Proxy Address - doing this in assoication with the query
> (proxyAddresses=smt***@bloggs.co.uk) will give you a list of all
> entities within the organisation that have an email address, together
> with all the email addresses they have.
>
> HTH
>
> Alister

There is no mention as to which version of Exchange is being used.  If
it is Exchange 2007 then you coudl use PowerShell.

(Get-Mailbox -ResultSize Unlimited | ? {$_.EmailAddresses -match
"^smtp:searchu***@company.com"}).name

With Exchange 2003, I like to be able to run a report of all the SMTP
addresses.  The below script will create a text file in the same
directory the script is run from and will list which users have what
email addresses.

[code]
'=======================================================================
===
'
' NAME: EnumSMTP.vbs
'
' AUTHOR: Mark D. MacLachlan , The Spider's Parlor
' URL: http://www.TheSpidersParlor.com
' COPYRIGHT (c) 2005 All Rights Reserved
' DATE  : 7/28/2004
'
' COMMENT: Lists SMTP addresses and user names.
'
'    THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
'    ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED To
'    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
'    PARTICULAR PURPOSE.
'
'    IN NO EVENT SHALL THE SPIDER'S PARLOR AND/OR ITS RESPECTIVE
SUPPLIERS
'    BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
'    DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
'    WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
'    ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
'    OF THIS CODE OR INFORMATION.
'=======================================================================
===

vbComma = chr(44)
Set Root = GetObject("LDAP://RootDSE")
DNC = "LDAP://" & Root.Get("DefaultNamingContext")

Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCOmmand.ActiveConnection = objConnection
objCommand.CommandText = _
"Select mail, cn, ProxyAddresses from '" & DNC & "' " _
& "where mail='*@*' ORDER BY cn"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Timeout") = 30
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.Properties("Cache Results") = False
report = report & "Name" & vbcomma & "SMTP" & vbCrLf
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
i = 0
Do Until objRecordSet.EOF
strName = objRecordSet.Fields("cn")
Set regEx = New RegExp ' Create regular expression.
Set regEx1 = New RegExp ' Create regular expression.
regEx.Pattern = "^smtp:" ' Set pattern.
regEx1.Pattern = "^SMTP:SystemMailbox{" ' Set pattern.
regEx.IgnoreCase = True ' Set case sensitivity.
regEx1.IgnoreCase = True ' Set case sensitivity.
'go through each of the elements in ProxyAddresses only keep those that
start with smpt:
arrProxylist = objRecordSet.Fields("ProxyAddresses").Value
For each Addy in arrProxylist
    retVal = regEx.Test(Addy) ' Execute the search for smtp:.
    If retVal Then
        retVal1 = regEx1.Test(Addy) ' Execute the search for SystemMailbox.
        If NOT retVal1 Then
            i = i + 1
            report = report & strName & vbComma & "     " & Addy & vbCrLf
        End IF
    End If
Next
objRecordSet.MoveNext
Loop

Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.CreateTextFile ("EnumeratedSMTPAddresses.txt", ForWriting)
ts.write report
wscript.echo "Report Created"
set ts = nothing
[/code]


Hope that helps,

Mark D. MacLachlan

--
Author
3 Jul 2009 7:28 PM
Ace Fekay [Microsoft Certified Trainer]
Show quote Hide quote
"Mark D. MacLachlan" <markd***@live.com> wrote in message news:OVxAOpA$JHA.4984@TK2MSFTNGP05.phx.gbl...
> Alister wrote:
>
>>
>> "Vitor Cartaxo" <VitorCart***@discussions.microsoft.com> wrote in
>> message news:242A8061-9E18-40FC-8B0D-630973354571@microsoft.com...
>> > Hi,
>> >
>> > Problem: I can't associate an external email to user. The given
>> > information is that the email (smtp) already exists on the exchange.
>> >
>> > Source of the problem: The scenario is a parent domain with several
>> > child domains and each one with its Exchange server.
>> > In one child domain, the hard disks broke down and the backups were
>> > not being made. We had to install a new child domain with a new
>> > exchange  server, but when we create the new user and the external
>> > smtp email is added, the system gives the information that already
>> > exists.
>> >
>> > Any ideas?
>> >
>> > Thanks,
>> > Vitor cartaxo
>>
>> You can find what entity has the selected email address assigned to
>> it as follows:
>>
>>    * Open the Acive Directory Users and Computers Management Console
>>    * Right Click on the domain > Select Find
>>    * Select Custom Search in the Find field
>>    * Select the Advanced tab
>>   * To find the entity with the email address f***@bloggs.co.uk for
>> example, enter the following in the LDAP query field:
>> (proxyAddresses=smtp:f***@bloggs.co.uk)    * This will list the
>> entity containing the email address entered.
>>
>>   * Wild cards can be entered within the email address (*) to return
>> multiple matches.    * If you want to view all the email addresses
>> within the results list, select View > Choose Columns...  and select
>> Proxy Address - doing this in assoication with the query
>> (proxyAddresses=smt***@bloggs.co.uk) will give you a list of all
>> entities within the organisation that have an email address, together
>> with all the email addresses they have.
>>
>> HTH
>>
>> Alister
>
> There is no mention as to which version of Exchange is being used.  If
> it is Exchange 2007 then you coudl use PowerShell.
>
> (Get-Mailbox -ResultSize Unlimited | ? {$_.EmailAddresses -match
> "^smtp:searchu***@company.com"}).name
>
> With Exchange 2003, I like to be able to run a report of all the SMTP
> addresses.  The below script will create a text file in the same
> directory the script is run from and will list which users have what
> email addresses.
>
> [code]
> '=======================================================================
> ===
> '
> ' NAME: EnumSMTP.vbs
> '
> ' AUTHOR: Mark D. MacLachlan , The Spider's Parlor
> ' URL: http://www.TheSpidersParlor.com
> ' COPYRIGHT (c) 2005 All Rights Reserved
> ' DATE  : 7/28/2004
> '
> ' COMMENT: Lists SMTP addresses and user names.
> '
> '    THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
> '    ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED To
> '    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
> '    PARTICULAR PURPOSE.
> '
> '    IN NO EVENT SHALL THE SPIDER'S PARLOR AND/OR ITS RESPECTIVE
> SUPPLIERS
> '    BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY
> '    DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
> '    WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
> '    ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
> '    OF THIS CODE OR INFORMATION.
> '=======================================================================
> ===
>
> vbComma = chr(44)
> Set Root = GetObject("LDAP://RootDSE")
> DNC = "LDAP://" & Root.Get("DefaultNamingContext")
>
> Const ADS_SCOPE_SUBTREE = 2
> Set objConnection = CreateObject("ADODB.Connection")
> Set objCommand = CreateObject("ADODB.Command")
> objConnection.Provider = "ADsDSOObject"
> objConnection.Open "Active Directory Provider"
> Set objCOmmand.ActiveConnection = objConnection
> objCommand.CommandText = _
> "Select mail, cn, ProxyAddresses from '" & DNC & "' " _
> & "where mail='*@*' ORDER BY cn"
> objCommand.Properties("Page Size") = 1000
> objCommand.Properties("Timeout") = 30
> objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
> objCommand.Properties("Cache Results") = False
> report = report & "Name" & vbcomma & "SMTP" & vbCrLf
> Set objRecordSet = objCommand.Execute
> objRecordSet.MoveFirst
> i = 0
> Do Until objRecordSet.EOF
> strName = objRecordSet.Fields("cn")
> Set regEx = New RegExp ' Create regular expression.
> Set regEx1 = New RegExp ' Create regular expression.
> regEx.Pattern = "^smtp:" ' Set pattern.
> regEx1.Pattern = "^SMTP:SystemMailbox{" ' Set pattern.
> regEx.IgnoreCase = True ' Set case sensitivity.
> regEx1.IgnoreCase = True ' Set case sensitivity.
> 'go through each of the elements in ProxyAddresses only keep those that
> start with smpt:
> arrProxylist = objRecordSet.Fields("ProxyAddresses").Value
> For each Addy in arrProxylist
> retVal = regEx.Test(Addy) ' Execute the search for smtp:.
> If retVal Then
> retVal1 = regEx1.Test(Addy) ' Execute the search for SystemMailbox.
> If NOT retVal1 Then
> i = i + 1
> report = report & strName & vbComma & "     " & Addy & vbCrLf
> End IF
> End If
> Next
> objRecordSet.MoveNext
> Loop
>
> Set fso = CreateObject("Scripting.FileSystemObject")
> Set ts = fso.CreateTextFile ("EnumeratedSMTPAddresses.txt", ForWriting)
> ts.write report
> wscript.echo "Report Created"
> set ts = nothing
> [/code]
>
>
> Hope that helps,
>
> Mark D. MacLachlan
>
> --
>
..
Nice script, Mark.

:-)

Ace
Author
4 Jul 2009 7:09 AM
Mark D. MacLachlan
Ace Fekay [Microsoft Certified Trainer] wrote:
> .
> Nice script, Mark.
>
> :-)
>
> Ace


Thanks Ace, that one has come in handy at many customer locations for
me.  it is especially helpful when you have been asked to move former
employee addresses to another user.

--
Author
4 Jul 2009 2:11 PM
Ace Fekay [Microsoft Certified Trainer]
"Mark D. MacLachlan" <markd***@live.com> wrote in message news:ehvatZH$JHA.5068@TK2MSFTNGP03.phx.gbl...
>
> Thanks Ace, that one has come in handy at many customer locations for
> me.  it is especially helpful when you have been asked to move former
> employee addresses to another user.
>

I can see it's importance. I saved it in my archives.

Similarly, and I'm posting the attached scripts is to share with others as well, I've used the attached 'groups2' script to gather group info for a new or existing customer to see if I can use one of their groups as a dist group that may be a security group so I don't have to create a duplicate, or to enumerate all mailboxes and their sizes from an Ex2003 environment, as well as review the groups looking at a Security Explorer output of file share/NTFS permissions.

I've been wanting to change the attached MBX size script for powershell so I can enumerate and create an Excel sheet of the output. I mean I've been using the following command to look at sizes in PowerShell, such as the following, but the results go to the shell window, where I would like to have it create an Excel sheet.

Get-MailboxStatistics -database “Mailbox Database” | Select DisplayName, LastLoggedOnUserAccount, ItemCount, TotalItemSize, LastLogonTime, LastLogoffTime | Format-Table

But not being a scripter, and I've found the 'groups2' script at http://cwashington.netreach.net, I'm not sure how to incorporate the powershell command into a script to provide an Excel output such as the HTA script does for an Ex2003 environment. What would be nicer, is if I can combine the two into a script (which I don't think is possible) to get an MBX size report in a mixed Ex2003/2007 environment!

Ace
Author
4 Jul 2009 9:07 PM
Mark D. MacLachlan
Ace Fekay [Microsoft Certified Trainer] wrote:

Show quoteHide quote
> "Mark D. MacLachlan" <markd***@live.com> wrote in message
> news:ehvatZH$JHA.5068@TK2MSFTNGP03.phx.gbl...
> >
> > Thanks Ace, that one has come in handy at many customer locations
> > for me.  it is especially helpful when you have been asked to move
> > former employee addresses to another user.
> >
>
> I can see it's importance. I saved it in my archives.
>
> Similarly, and I'm posting the attached scripts is to share with
> others as well, I've used the attached 'groups2' script to gather
> group info for a new or existing customer to see if I can use one of
> their groups as a dist group that may be a security group so I don't
> have to create a duplicate, or to enumerate all mailboxes and their
> sizes from an Ex2003 environment, as well as review the groups
> looking at a Security Explorer output of file share/NTFS permissions.
>
> I've been wanting to change the attached MBX size script for
> powershell so I can enumerate and create an Excel sheet of the
> output. I mean I've been using the following command to look at sizes
> in PowerShell, such as the following, but the results go to the shell
> window, where I would like to have it create an Excel sheet.
>
> Get-MailboxStatistics -database ?Mailbox Database? | Select
> DisplayName, LastLoggedOnUserAccount, ItemCount, TotalItemSize,
> LastLogonTime, LastLogoffTime | Format-Table
>
> But not being a scripter, and I've found the 'groups2' script at
> http://cwashington.netreach.net, I'm not sure how to incorporate the
> powershell command into a script to provide an Excel output such as
> the HTA script does for an Ex2003 environment. What would be nicer,
> is if I can combine the two into a script (which I don't think is
> possible) to get an MBX size report in a mixed Ex2003/2007
> environment!
>
> Ace
>
>


Anything is possible.  I've been doing a lot of integration between AD,
VBscript and PowerShell.  Its all rather exciting (from a geek
perspective).

Take a look at using the PowerShell -Outfile parameter.  You can easily
dump your PowerShell results to a CSV file which can then be
manipulated easily with VBScript and Excel.

--
Author
4 Jul 2009 9:59 PM
Ace Fekay [Microsoft Certified Trainer]
"Mark D. MacLachlan" <markd***@live.com> wrote in message news:%23kzq9tO$JHA.1376@TK2MSFTNGP02.phx.gbl...
>
> Anything is possible.  I've been doing a lot of integration between AD,
> VBscript and PowerShell.  Its all rather exciting (from a geek
> perspective).
>
> Take a look at using the PowerShell -Outfile parameter.  You can easily
> dump your PowerShell results to a CSV file which can then be
> manipulated easily with VBScript and Excel.

I can definitely see the excitement. I'm not a scripter, but understand it at a rudimentary perspective, because years ago I was somewhat familiar and worked with Basic, Fortran, Cobol and a little Assembler. Yep, dating myself! But it's been so long ago, that I forget much of the syntax, but I do associate with the old flat-level style (or whatever you want to call it) programming sytles, using Sections, Performs, Gosubs, etc, instead of using simple goto's, which I see a lot of with bat files and some VB script code. But I guess if I devoted some time, I would eventually learn it. I've been so busy with getting two startup-companies going, and trying to gear myself up to teach Ex2007 and the 2008 courses, that I just don't have the time.

Anyway, so you're saying to simply make the command the following and it should work? Boy, that is much easier than that VB script I was using to get MBX size data.

Get-MailboxStatistics -database “Mailbox Database” | Select DisplayName, LastLoggedOnUserAccount, ItemCount, TotalItemSize, LastLogonTime, LastLogoffTime | Format-Table -Outfile c:\mbxsize.csv

Now what happens with a mixed scenario? I know the other script I was using will not pull this data for Ex 2007 users, and I assume the above command will NOT pull this data from Ex2003 users, so I would have to run both to get a complete report. I can imagine this be a little time consuming with 4500 users with a mixed 2003/2007 environment, as one of my former customers I was subbed at.

Ace