Microsoft KB Archive/253565: Difference between revisions

From BetaArchive Wiki
(importing KB archive)
 
m (Text replacement - """ to """)
 
(3 intermediate revisions by the same user not shown)
Line 67: Line 67:
To resolve this problem, find the users who have duplicate e-mail addresses and change the e-mail addresses.<br />
To resolve this problem, find the users who have duplicate e-mail addresses and change the e-mail addresses.<br />
<br />
<br />
You can avoid this problem by running a script similar to one of those provided in the &quot;More Information&quot; section of this article to find out if a specific e-mail address is already in use.<br />
You can avoid this problem by running a script similar to one of those provided in the "More Information" section of this article to find out if a specific e-mail address is already in use.<br />
<br />
<br />
Note that although MCIS does not let any user with a duplicated e-mail address log on, it drops the e-mails sent to this e-mail address to the mailbox directory of the user created first of those with the duplicate address. So no e-mail sent to the ambiguous address is actually lost.<br />
Note that although MCIS does not let any user with a duplicated e-mail address log on, it drops the e-mails sent to this e-mail address to the mailbox directory of the user created first of those with the duplicate address. So no e-mail sent to the ambiguous address is actually lost.<br />
<br />
<br />
You can use a script like those samples listed in the &quot;More Information&quot; section of this article in order to probe the mapped Membership Directory database to see if there are users who are already listed using a specific e-mail address. When querying the Membership Directory instance, using the Active Directory OLEDB Provider may yield faster results than sequential Lightweight Directory Access Protocol (LDAP) container searches.
You can use a script like those samples listed in the "More Information" section of this article in order to probe the mapped Membership Directory database to see if there are users who are already listed using a specific e-mail address. When querying the Membership Directory instance, using the Active Directory OLEDB Provider may yield faster results than sequential Lightweight Directory Access Protocol (LDAP) container searches.


</div>
</div>
Line 100: Line 100:
intCount = 0
intCount = 0
'enter the searched e-mail address eg: user@example.com
'enter the searched e-mail address eg: user@example.com
strEmail = InputBox(&quot;Enter e-mail address which is suspected to be duplicate&quot;)
strEmail = InputBox("Enter e-mail address which is suspected to be duplicate")


strLdapPath = &quot;LDAP://server1:389/o=members/ou=Members&quot;
strLdapPath = "LDAP://server1:389/o=members/ou=Members"


Set oLDAP = GetObject(&quot;LDAP:&quot;)
Set oLDAP = GetObject("LDAP:")


if err then
if err then
   wscript.echo &quot;bind failure on LDAP&quot;
   wscript.echo "bind failure on LDAP"
   wscript.quit
   wscript.quit
end if
end if


' set the account to an existing admin account and password
' set the account to an existing admin account and password
Set oADsContainer = oLDAP.OpenDSObject(strLdapPath, &quot;cn=Administrator,ou=Members,o=members&quot;, &quot;password&quot;, 0)
Set oADsContainer = oLDAP.OpenDSObject(strLdapPath, "cn=Administrator,ou=Members,o=members", "password", 0)


if err then
if err then
   wscript.echo &quot;bind failure on strLdapPath&quot;
   wscript.echo "bind failure on strLdapPath"
   wscript.echo err.description
   wscript.echo err.description
   wscript.quit
   wscript.quit
Line 122: Line 122:
set oLDAP = Nothing
set oLDAP = Nothing


   wscript.echo &quot;----------------&quot;
   wscript.echo "----------------"
for each oADsUser in oADsContainer
for each oADsUser in oADsContainer
   if oADsUser.Mail = strEmail Then
   if oADsUser.Mail = strEmail Then
Line 130: Line 130:
     wscript.echo oADsUser.mailboxlocation
     wscript.echo oADsUser.mailboxlocation
     wscript.echo oADsUser.forwardingaddress
     wscript.echo oADsUser.forwardingaddress
     wscript.echo &quot;----------------&quot;
     wscript.echo "----------------"
     intCount = intCount + 1
     intCount = intCount + 1
   end if
   end if
next
next


     wscript.echo &quot;----------------&quot;
     wscript.echo "----------------"
     wscript.echo &quot;Number of users: &quot; &amp; intCount &amp; &quot;, who owns the same E-mailAddress: &quot; &amp; strEmail
     wscript.echo "Number of users: " & intCount & ", who owns the same E-mailAddress: " & strEmail
     wscript.echo &quot;----------------&quot;
     wscript.echo "----------------"
     intButton = MsgBox(&quot;Number of users : &quot; &amp; intCount, _
     intButton = MsgBox("Number of users : " & intCount, _
     , &quot;E-mailAddress to be suspected as duplicate: &quot; &amp; strEmail)
     , "E-mailAddress to be suspected as duplicate: " & strEmail)


'Destroy the objects
'Destroy the objects
Line 160: Line 160:
Dim intButton
Dim intButton


Set con = WScript.CreateObject(&quot;ADODB.Connection&quot;)
Set con = WScript.CreateObject("ADODB.Connection")
Set rs = WScript.CreateObject(&quot;ADODB.Recordset&quot;)
Set rs = WScript.CreateObject("ADODB.Recordset")
Set com = WScript.CreateObject(&quot;ADODB.Command&quot;)
Set com = WScript.CreateObject("ADODB.Command")


   strEmail = InputBox(&quot;Enter e-mail address which is suspected to be duplicate&quot;)
   strEmail = InputBox("Enter e-mail address which is suspected to be duplicate")


   con.Provider = &quot;ADsDSOObject&quot;
   con.Provider = "ADsDSOObject"
   con.Open &quot;Active Directory Provider&quot;
   con.Open "Active Directory Provider"
   Set com.ActiveConnection = con
   Set com.ActiveConnection = con
   com.CommandText = &quot;&lt;LDAP://server1:389/o=members/ou=Members&gt;;&quot; &amp; _
   com.CommandText = "<LDAP://server1:389/o=members/ou=Members>;" & _
               &quot;(&amp;(mail=&quot; &amp; strEmail &amp; &quot;));&quot; &amp; _
               "(&(mail=" & strEmail & "));" & _
               &quot;ADsPath;&quot; &amp; _
               "ADsPath;" & _
               &quot;SubTree&quot;
               "SubTree"
Set rs = com.Execute
Set rs = com.Execute


   if err then
   if err then
     wscript.echo &quot;ADSI: ADO Query failure&quot;
     wscript.echo "ADSI: ADO Query failure"
     wscript.echo err.description
     wscript.echo err.description
     wscript.quit
     wscript.quit
Line 184: Line 184:


   While Not rs.EOF       
   While Not rs.EOF       
         wscript.echo rs.Fields(0).Name, &quot; = &quot;, rs.Fields(0).Value
         wscript.echo rs.Fields(0).Name, " = ", rs.Fields(0).Value
         rs.MoveNext
         rs.MoveNext
   Wend
   Wend
Line 190: Line 190:
   rs.MoveLast
   rs.MoveLast
   wscript.echo
   wscript.echo
   wscript.echo &quot;Number of duplicate EMailAddress rows found= &quot;, rs.RecordCount
   wscript.echo "Number of duplicate EMailAddress rows found= ", rs.RecordCount
   intButton = MsgBox(&quot;Number of users : &quot; &amp; rs.RecordCount, _
   intButton = MsgBox("Number of users : " & rs.RecordCount, _
         , &quot;E-mailAddress to be suspected as duplicate: &quot; &amp; strEmail)
         , "E-mailAddress to be suspected as duplicate: " & strEmail)


Set com = Nothing
Set com = Nothing

Latest revision as of 12:52, 21 July 2020

Knowledge Base


Article ID: 253565

Article Last Modified on 6/12/2001



APPLIES TO

  • Microsoft Commercial Internet System 2.0



This article was previously published under Q253565

SYMPTOMS

The POP3 server does not let some members log on to retrieve their e-mail. Microsoft Outlook Express will show the following error when you are trying to log on after three attempts even when you are using the correct password:

There was a problem logging onto your mail server. Your Password was rejected. Account: 'user1', Server: 'server1', Protocol: POP3, Server Response: '-ERR Permission denied', Port: 110, Secure(SSL): No, Server Error: 0x800CCC90, Error Number: 0x800CCC92

CAUSE

The same e-mail address has been assigned to more than one user.

This is an ambiguous situation for Microsoft Commercial Internet System (MCIS) because the POP3 service can't find out which user is supposed to be the valid one for the given e-mail address, so it rejects all logon attempts from all users that have the same e-mail address.

RESOLUTION

To resolve this problem, find the users who have duplicate e-mail addresses and change the e-mail addresses.

You can avoid this problem by running a script similar to one of those provided in the "More Information" section of this article to find out if a specific e-mail address is already in use.

Note that although MCIS does not let any user with a duplicated e-mail address log on, it drops the e-mails sent to this e-mail address to the mailbox directory of the user created first of those with the duplicate address. So no e-mail sent to the ambiguous address is actually lost.

You can use a script like those samples listed in the "More Information" section of this article in order to probe the mapped Membership Directory database to see if there are users who are already listed using a specific e-mail address. When querying the Membership Directory instance, using the Active Directory OLEDB Provider may yield faster results than sequential Lightweight Directory Access Protocol (LDAP) container searches.

STATUS

This behavior is by design.

MORE INFORMATION

Sample script using LDAP

'Sample Script 1
'script sample to find duplicate e-mail addresses by performing sequential search
'You will need to edit the LDAP server names below to match your server
'usage : cscript.exe FindDups.vbs

Dim oLDAP, oADsContainer, oADsNewContainer, oADsUser, oADsNewUser
Dim strLdapPath
Dim strEmail
Dim intCount, intButton

On Error Resume Next

intCount = 0
'enter the searched e-mail address eg: user@example.com
strEmail = InputBox("Enter e-mail address which is suspected to be duplicate")

strLdapPath = "LDAP://server1:389/o=members/ou=Members"

Set oLDAP = GetObject("LDAP:")

if err then
   wscript.echo "bind failure on LDAP"
   wscript.quit
end if

' set the account to an existing admin account and password
Set oADsContainer = oLDAP.OpenDSObject(strLdapPath, "cn=Administrator,ou=Members,o=members", "password", 0)

if err then
   wscript.echo "bind failure on strLdapPath"
   wscript.echo err.description
   wscript.quit
end if

set oLDAP = Nothing

   wscript.echo "----------------"
for each oADsUser in oADsContainer
   if oADsUser.Mail = strEmail Then
    wscript.echo oADsUser.cn
    wscript.echo oADsUser.userPassword
    wscript.echo oADsUser.Mail
    wscript.echo oADsUser.mailboxlocation
    wscript.echo oADsUser.forwardingaddress
    wscript.echo "----------------"
    intCount = intCount + 1
   end if
next

    wscript.echo "----------------"
    wscript.echo "Number of users: " & intCount & ", who owns the same E-mailAddress: " & strEmail
    wscript.echo "----------------"
    intButton = MsgBox("Number of users : " & intCount, _
     , "E-mailAddress to be suspected as duplicate: " & strEmail)

'Destroy the objects
Set oADsContainer = Nothing
Set oADsNewContainer = Nothing
Set oADsUser = Nothing
                


Sample script using OLEDB

'Sample Script 2 - this one might work faster than the above sequential LDAP search sample
'script sample to find duplicate e-mail addresses by using Active Directory OLEDB Provider
'You will need to edit the LDAP server names below to match your server
'usage : cscript.exe FindDups2.vbs

On error resume next

Dim con, rs, com
Dim strEmail
Dim intButton

Set con = WScript.CreateObject("ADODB.Connection")
Set rs = WScript.CreateObject("ADODB.Recordset")
Set com = WScript.CreateObject("ADODB.Command")

   strEmail = InputBox("Enter e-mail address which is suspected to be duplicate")

   con.Provider = "ADsDSOObject"
   con.Open "Active Directory Provider"
   Set com.ActiveConnection = con
   com.CommandText = "<LDAP://server1:389/o=members/ou=Members>;" & _
               "(&(mail=" & strEmail & "));"  & _
               "ADsPath;" & _
               "SubTree"
Set rs = com.Execute

   if err then
    wscript.echo "ADSI: ADO Query failure"
    wscript.echo err.description
    wscript.quit
   end if
       
   rs.MoveFirst

   While Not rs.EOF      
        wscript.echo rs.Fields(0).Name, " = ", rs.Fields(0).Value
        rs.MoveNext
   Wend

   rs.MoveLast
   wscript.echo
   wscript.echo "Number of duplicate EMailAddress rows found= ", rs.RecordCount
   intButton = MsgBox("Number of users : " & rs.RecordCount, _
        , "E-mailAddress to be suspected as duplicate: " & strEmail)

Set com = Nothing
Set rs = Nothing
Set con = Nothing
                


Additional query words: MCIS ADSI

Keywords: kbprb KB253565