Microsoft KB Archive/319528

= The Notes Management Agent Cannot Delete Members from a Distribution List =

Article ID: 319528

Article Last Modified on 10/30/2006

-

APPLIES TO


 * Microsoft Metadirectory Services 2.2 Service Pack 1

-



This article was previously published under Q319528



SYMPTOMS
When the Notes management agent tries to update a distribution list, the management agent can add members, but it cannot delete them. When this behavior occurs, error messages are not generated.



CAUSE
This issue may occur if the connected directory discovery excludes the distribution list that the management agent is trying to update. The LIST_MEMBER function prepares deltas of the list membership by examining the Import.lst file. If the list is not discovered, only Add transactions occur; Modify transaction do not occur.



RESOLUTION
To resolve the issue, make sure that the distribution list is discovered before you run the update. If you cannot do so, You may want to modify the CD Lists from Connectors script, which builds the member lines. To open this script, start MMS Compass, click Design MA, click the Control Connected Directory tab, click the Output Construction Templates tab, and then click the CD Lists from Connectors script.

The following script is an example of a script that allows distribution list membership to be re-added without discovery:

if $exist ( $AT.zcNotesDn ) = F then
 * 1) if the member belongs to another MA. Let's build
 * 2) it as if it was a foreign user.

$v_Name = $dn_component(&quot;$dn&quot;,1)
 * 1) store the RDN of the Metaverse DN in v_Name & write
 * 2) it's constituent name components into the Metaverse

IF $TEST_CHAR( &quot;+&quot;, $v_Name ) = T THEN $v_Name = $GET_SUBSTRING(&quot;$v_Name&quot;, &quot;&quot;, &quot; +&quot;) ENDIF
 * 1) WATCH OUT FOR MULTIPART DN'S LIKE THOSE FROM EXCHANGE

$v_Name = $proper_name(&quot;$v_Name&quot;) $I_personal_name=$v_Name

if $MA($zcNotesForeignLevel) = All then
 * 1)  build the LastName according to the desired hierarchy level
 * 1)      build a unique NOTES name based on the hierarchy

$v_dninter=$dn $v_dninter=$replace(&quot;$v_dninter&quot;,&quot;,OU=&quot;,&quot;,&quot;) $v_dninter=$replace(&quot;$v_dninter&quot;,&quot;,O=&quot;,&quot;,&quot;) $v_dninter=$replace(&quot;$v_dninter&quot;,&quot;,C=&quot;,&quot;,&quot;) $v_dninter=$replace(&quot;$v_dninter&quot;,&quot;,L=&quot;,&quot;,&quot;) $v_dninter=$replace(&quot;$v_dninter&quot;,&quot;,ou=&quot;,&quot;,&quot;) $v_dninter=$replace(&quot;$v_dninter&quot;,&quot;,o=&quot;,&quot;,&quot;) $v_dninter=$replace(&quot;$v_dninter&quot;,&quot;,c=&quot;,&quot;,&quot;) $v_dninter=$replace(&quot;$v_dninter&quot;,&quot;,l=&quot;,&quot;,&quot;) $v_dninter=$replace(&quot;$v_dninter&quot;,&quot;,DsaName=&quot;,&quot;,&quot;) $v_uniquefield =$get_substring(&quot;$v_dninter&quot;,&quot;,&quot;,&quot;&quot;) if $exist ( $MA ( $zcNotesForeignOU ) ) = T        then
 * 1)      form a unique name by taking the DN & stripping
 * 2)      off all component labels including the RDN

$v_dn=CN=($md.givenName )($md.initials )($md.sn)(,$MA($zcNotesForeignOU)) [$v_uniquefield] $v_st0 = ($md.givenName )($md.initials )($md.sn) [$v_uniquefield] $v_fullname = $v_dn else $v_dn=CN=($md.givenName )($md.initials )($md.sn) [$v_uniquefield] $v_fullname=($md.givenName )($md.initials )($md.sn) [$v_uniquefield] endif
 * 1)           build a unique NOTES DN based on the NOTES foreign OU

else

if $exist ( $MA ( $zcNotesForeignOU ) ) = T       then
 * 1)       build a NOTES name not based on the hierarchy (may not be unique)

$v_dn=CN=$v_Name(,$MA($zcNotesForeignOU)) $v_st0 = ($md.givenName )($md.initials )$md.sn          $v_fullname=$v_dn else $v_dn=CN=$v_Name $v_fullname=$v_Name endif endif
 * 1)          build a NOTES DN based on the NOTES foreign OU

$v_dn=$replace(&quot;$v_dn&quot;,&quot;,OU=&quot;,&quot;/OU=&quot;) $v_dn=$replace(&quot;$v_dn&quot;,&quot;,O=&quot;,&quot;/O=&quot;) $v_dn=$replace(&quot;$v_dn&quot;,&quot;,C=&quot;,&quot;/C=&quot;) $v_dn=$replace(&quot;$v_dn&quot;,&quot;,L=&quot;,&quot;/L=&quot;) $v_dn=$replace(&quot;$v_dn&quot;,&quot;,DsaName=&quot;,&quot;/DsaName=&quot;) $v_fullname=$replace(&quot;$v_fullname&quot;,&quot;,OU=&quot;,&quot;/OU=&quot;) $v_fullname=$replace(&quot;$v_fullname&quot;,&quot;,O=&quot;,&quot;/O=&quot;) $v_fullname=$replace(&quot;$v_fullname&quot;,&quot;,C=&quot;,&quot;/C=&quot;) $v_fullname=$replace(&quot;$v_fullname&quot;,&quot;,L=&quot;,&quot;/L=&quot;)
 * 1)   replace every ',' by '/' in the dn
 * 1)    $AT.zcNotesDn = $v_fullname

IF $v_currentList=$v_list THEN $AT.zcNotesDn = +Members: +$v_fullname ELSE $v_currentList=$v_list $AT.zcNotesDn =-Members: $c_newline+Members: +$v_fullname ENDIF
 * 1) CHECK TO SEE IF THE LIST HAS CHANGED YET

endif

You must also add the following line to the end of the CD Accounts from Connectors script. To open this script, start MMS Compass, click Design MA, click the Control Connected Directory tab, click the Output Construction Templates tab, and then click the CD Accounts from Connectors script.

$v_list=$v_dn
 * 1) THIS WAS ADDED TO FIX THE CD LIST FROM CONNECTOR BUG

If you insert a -member: entry and you do not place a distinguished name (also known as DN) immediately before the member lines that show addition, the existing membership is treated as if it is null and the additions process is treated as if this record is a new record. The following text is an example of the output that you may receive:

M LIST=Dist1/O=Notes1Wk%NAMES.nsf -ListName: Dist1/O=Notes1Wk -Database: NAMES.nsf -FirstName: -MiddleInitial: -LastName: -Members: +Members: +CN=Jane Doe/OU=MMS_Users/O=NOTES1WK +Members: +CN=Joe Smith/OU=MMS_Users/O=NOTES1WK +Members: +CN=John Buck/OU=MMS_Users/O=NOTES1WK ---

NOTE: This script may trigger replication of the LIST function in the Notes management agent; however, the membership is updated correctly.



MORE INFORMATION
Extra lines similar to the following lines may be detected immediately before the member lines:

Com Root Collectives Root Security

If these lines are detected, see the following article in the Microsoft Knowledge Base for more information about a hotfix for the LIST_MEMBER function:

304738 $List_Member Function Does Not Work with Foreign User Output

Additional query words: mms metadirectory zoomit

Keywords: kbprb KB319528

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.