DESCRIPTION
This ARS external script (not a script policy) demonstrates how to convert Query-based Distribution Group to ARS Dynamic Group.
Note This code may use functions from the Active Roles Script Policy Best Practices. Please, follow the link to obtain instructions and code for those functions.
SCRIPT
'*********************************************************************************
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
' EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
' WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
'
' IF YOU WANT THIS FUNCTIONALITY TO BE CONDITIONALLY SUPPORTED,
' PLEASE CONTACT ONE IDENTITY PROFESSIONAL SERVICES.
'*********************************************************************************
Option Explicit
Dim objQBDG, objCont, objARSDG
Dim strBaseDN, strFilter
Dim objRuleCollection, objRule
'------ bind to Query-based Distribution Group ------
Set objQBDG = GetObject("EDMS://CN=MyGroup,OU=Sales,DC=foocompany,DC=com")
objQBDG.GetInfoEx Array("msExchDynamicDLBaseDN", "msExchDynamicDLFilter"), 0
'------ read its properties: query base & filter ------
strBaseDN = objQBDG.Get("msExchDynamicDLBaseDN")
strFilter = objQBDG.Get("msExchDynamicDLFilter")
'------ create Basic Group ------
Set objCont = GetObject(objQBDG.Parent)
Set objARSDG = objCont.Create("group", objQBDG.Name & "x")
objARSDG.Put "sAMAccountName", objQBDG.Get("cn") & "x"
objARSDG.Put "groupType", -2147483646 '--- global, security ---
objARSDG.SetInfo
'------ convert it to ARS Dynamic Group using query base & filter ------
Set objARSDG = GetObject(objARSDG.ADsPath)
Set objRuleCollection = objARSDG.MembershipRuleCollection
Set objRule = CreateObject("EDSIManagedUnitCondition")
objRule.Base = "EDMS://" & strBaseDN
objRule.Filter = strFilter
objRule.Type = 1
objRuleCollection.Add objRule
objARSDG.SetInfo
'***** END OF CODE ***************************************************************