Microsoft KB Archive/830499

= 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 &quot;Modify the following variables&quot; section of the script with the values that match the environment where you want to run the script.
 * 3) * In the szGroupPath variable, replace the  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.
 * 4) * In the szServerName variable, replace the  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 = &quot;10.0.0.2&quot;

szServerName = &quot;10.0.0.2:379&quot;
 * 1) * In the szSvcAccount variable, replace the  placeholder with the name of the domain and the name of an account that has permissions to delete the distribution list in that domain.
 * 2) * In the szPassword variable, replace the  placeholder with the password for the account that is used in the szSvcAccount variable.
 * 3) * In the iNumToRemove variable, replace the  placeholder with the number of members that you want to delete from the distribution list.
 * 4) Save the file as MemberRemove.vbs.
 * 5) 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 = &quot;cn=distribution list name,cn=recipients,ou=site,o=org&quot; szServerName = &quot;computer name&quot; szSvcAccount = &quot;domain\account&quot; szPassword = &quot;password&quot; iNumToRemove = number of members

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

wscript.echo(&quot;About to open group: &quot; + szGroupPath)

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

wscript.echo(&quot;Group opened... trying to remove members.&quot;)

iCounter = 0

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

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

