Allen, I threw this vbscript together quickly and haven't tested it yet. Could you please look at it and see if it could easily be translated to Kix?

Script 1 - Run Once To Create Distribution Lists
 Code:
On Error Resume Next

Const olDistributionListItem = 7

Set objOutlook = CreateObject("Outlook.Application")
Set objList = objOutlook.CreateItem(olDistributionListItem )

objList.DLName = Math Teachers"
objList.Save

Set objGroup = GetObject("LDAP://[enter appropriate path here]CN=Finance Users,OU=Finance,,DC=fabrikam,DC=com")

For Each strUser in objGroup.Member
    Set objUser = GetObject("LDAP://" & strUser)
    strUserName = objUser.displayName

    Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
    objRecipient.Resolve
    objList.AddMember objRecipient
Next

Set objOutlook = CreateObject("Outlook.Application")
Set objList = objOutlook.CreateItem(olDistributionListItem )

objList.DLName = English Teachers"
objList.Save

Set objGroup = GetObject("LDAP://[enter appropriate path here]CN=Finance Users,OU=Finance,,DC=fabrikam,DC=com")

For Each strUser in objGroup.Member
    Set objUser = GetObject("LDAP://" & strUser)
    strUserName = objUser.displayName

    Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
    objRecipient.Resolve
    objList.AddMember objRecipient
Next

wscript.quit


And this code is to later on revise the distribution lists:

 Code:
On Error Resume Next

Const olDistributionListItem  = 10

Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objFolder = objNamespace.GetDefaultFolder(olDistributionListItem)

 Dim i As Integer
    Dim objRecip As Outlook.Recipient
    For i = objDL.MemberCount To 1 Step -1
        Set objRecip = objDL.GetMember(i)
        objDL.RemoveMember objRecip
    Next
    MsgBox objDL.MemberCount
    Set objRecip = Nothing

Set objList = objFolder.Items("Math Teachers")

Set objGroup = GetObject("LDAP://[fill in your path here]CN=Finance Users,OU=Finance,,DC=fabrikam,DC=com")

For Each strUser in objGroup.Member
    Set objUser = GetObject("LDAP://" & strUser)
    strUserName = objUser.displayName

    Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
    objRecipient.Resolve
    objList.AddMember objRecipient
Next

Set objOutlook = CreateObject("Outlook.Application")
Set objNamespace = objOutlook.GetNamespace("MAPI")
Set objFolder = objNamespace.GetDefaultFolder(olDistributionListItem)

 Dim i As Integer
    Dim objRecip As Outlook.Recipient
    For i = objDL.MemberCount To 1 Step -1
        Set objRecip = objDL.GetMember(i)
        objDL.RemoveMember objRecip
    Next
    MsgBox objDL.MemberCount
    Set objRecip = Nothing

Set objList = objFolder.Items("Science Teachers")

Set objGroup = GetObject("LDAP://[fill in your path here]CN=Finance Users,OU=Finance,,DC=fabrikam,DC=com")

For Each strUser in objGroup.Member
    Set objUser = GetObject("LDAP://" & strUser)
    strUserName = objUser.displayName

    Set objRecipient = objOutlook.Session.CreateRecipient(strUserName)
    objRecipient.Resolve
    objList.AddMember objRecipient
Next

wscript.quit


Edited by jeremyschubert (2008-08-16 09:07 PM)
_________________________
---
Bishop Grandin Technology Department
'Either we're on time, or we're late'