here it can be done both ways...
TranslateName() is only required if you go not have the LDAP name

Code:

break on
$group = 'some_group_name'
for each $member in NTDSGroupMembers($Group)
? $member
next

$group = TranslateName('some_group_name')
for each $member in LDAPGroupMembers($Group)
? $member
next



Code:

Function NTDSGroupMembers($group, Optional $Domain)
DIM $users, $obj
if not $domain $domain = @domain endif
if not instr($group,$domain) $group=$domain+'/'+ $group endif
$obj = GetObject("WinNT://"+$group+",group") IF not $obj exit 1 endif
for each $user in $obj.members
$users=$users + '|' + $user.name
next
$obj = 0
$NTDSGroupMembers = split(substr($users,2),'|')
EndFunction

function LDAPGroupMembers($Group)
dim $obj,$Member,$members
if not instr($group,'LDAP://') $group='LDAP://'+ $group endif
$obj = getobject($Group) IF not $obj exit 1 endif
for each $Member in $obj.members
if $member.Class = "user"
$members=$members+ '|'+$member.SamAccountName
endif
next
$obj = 0
$LDAPGroupMembers=split(substr($members,2),'|')
endfunction

Function TranslateName($LookupName, optional $LookupNameType, optional $ReturnNameType, optional $InitType, optional $BindName)
Dim $NameTranslate

if not $LookupNameType and not instr($LookupName,'\') $LookupName = @domain+'\'+$LookupName endif
if not $LookupNameType $LookupNameType=3 endif
if not $ReturnNameType $ReturnNameType=1 endif
if not $InitType $InitType=1 endif
if not $BindName $BindName=@domain endif
if $InitType = 3 $BindName='' endif

$NameTranslate = CREATEOBJECT("NameTranslate") if @error Exit 1 endif
$NameTranslate.Init($InitType, $BindName) if @error Exit 2 endif
$NameTranslate.Set($LookupNameType, $LookupName) if @error Exit 3 endif
$TranslateName = $NameTranslate.Get($ReturnNameType) if @error Exit 4 endif
Endfunction

_________________________
How to ask questions the smart way <-----------> Before you ask