Microsoft KB Archive/830499

From BetaArchive Wiki
Knowledge Base


The Exchange Administrator program may not delete a very large distribution list or may not remove members from a large distribution list in Exchange 5.5

Article ID: 830499

Article Last Modified on 10/27/2006



APPLIES TO

  • Microsoft Exchange Server 5.5 Standard Edition




SYMPTOMS

When you use the Exchange Administrator program in Microsoft Exchange Server 5.5 to try to delete a very large distribution list (DL) or to remove members from a very large distribution list, you cannot delete the distribution list or remove the members. Additionally, the following event may be logged in the application event log: Event ID: 1171
Source: MSExchangeDS
Type: Error
Category: Internal Processing
Description: Exception e0010004 has occurred with parameters -1069 and 0 (internal ID 2080113). Contact Microsoft Technical Support for assistance.
Error -1069 (0xfffffbd3) JET_errVersionStoreOutOfMemory

Additionally, this distribution list may not be able to replicate successfully.

CAUSE

This issue may occur if the version store memory cannot process many of the members in a distribution list.

RESOLUTION

To resolve this issue, do not create distribution lists that are very large. Nest multiple distribution lists together to limit the size of your distribution lists. Nest multiple distribution lists instead of creating one very large distribution list.

WORKAROUND

To work around this issue, delete members from the distribution list by using the script that is provided in this article. The script removes the number of members that you specify in the iNumToRemove variable. After you run the script, you do not have to restart the directory service for these membership changes to take effect.

To delete members from the distribution list, follow these steps:

  1. Copy and paste the script in this article to Notepad.
  2. Modify the variables in the "Modify the following variables" section of the script with the values that match the environment where you want to run the script.
    • In the szGroupPath variable, replace the cn=distribution list name,cn=recipients,ou=site,o=org placeholder with the name of the distribution list, the name of the organization unit, and the name of the Exchange organization where the distribution list resides.
    • In the szServerName variable, replace the computer name placeholder with the name of your Exchange Server computer. Or, replace the placeholder with the computer's IP address or with the IP address and the port number if the Lightweight Directory Access Protocol (LDAP) has been changed from port 389. For example, replace the placeholder as follows:


szServerName = "10.0.0.2"
szServerName = "10.0.0.2:379"

    • In the szSvcAccount variable, replace the domain\account placeholder with the name of the domain and the name of an account that has permissions to delete the distribution list in that domain.
    • In the szPassword variable, replace the password placeholder with the password for the account that is used in the szSvcAccount variable.
    • In the iNumToRemove variable, replace the number of members placeholder with the number of members that you want to delete from the distribution list.
  1. Save the file as MemberRemove.vbs.
  2. Type cscript /h:cscript at the command prompt on the computer that you want to run the script on.


When you do this, you set the default script host to Cscript.exe. You must set the script host to Cscript.exe. Otherwise, Wscript.exe runs the script. If Wscript.exe runs the script, you must click OK for each member that the script removes.

  1. Run MemberRemove.vbs from a command prompt.
' ***************** Start script *****************************
   Option Explicit

   Dim oOpenDsObject
   Dim oGroup
   Dim szGroupPath
   Dim szServerName
   Dim szSvcAccount
   Dim szPassword
   Dim szUserPath
   Dim iCounter
   Dim Member
   Dim iNumToRemove

' *******************************
' Modify the following variables: 

szGroupPath = "cn=distribution list name,cn=recipients,ou=site,o=org"
szServerName = "computer name"   
szSvcAccount = "domain\account"
szPassword = "password"
iNumToRemove = number of members

' *******************************
' *******************************

wscript.echo("About to open group: " + szGroupPath)

           Set oOpenDSObject = GetObject("LDAP:")
           Set oGroup = oOpenDSObject.OpenDSObject("LDAP://" + szServerName + "/" + 
szGroupPath, szSvcAccount, szPassword, 1)

wscript.echo("Group opened... trying to remove members.")

       iCounter = 0

       For Each Member in oGroup.Members
        iCounter = iCounter + 1
        szUserPath = "LDAP://" + Member.Get("distinguishedName")
        wscript.echo Cstr(iCounter) + ". Trying to remove... " + szUserPath
        oGroup.Remove szUserPath
        if iCounter >= iNumToRemove then Exit For
       Next

wscript.quit
' ***************** End script *******************************

REFERENCES

For additional information, click the following article number to view the article in the Microsoft Knowledge Base:

247654 XADM: Directory replication does not work, event 1171 with parameters -1069 and 0


Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.


Additional query words: delete remove large DL distribution list member event 1171

Keywords: kbprb KB830499