;SERVERS
$server1="\\BRSP03001A"
$server2="\\BRSP03017A"
Break ON
$objSysInfo = CreateObject("ADSystemInfo")
"User is a member of the following: "+@CRLF
For Each $sGroup in GetGroups("LDAP://"+$objSysInfo.username,">")
$sGroup+@CRLF
Next
@CRLF
@CRLF
@CRLF
IF "GG_BRSP03017A_EMPRESA_MAP_DRIVE" IN $sGroup
USE J: $server2+"\empresas$"
ENDIF
Function GetGroups($vStart,Optional $sIndent)
Dim $sGroupList, $sGroup
If Not (9 = VarType($vStart)) $vStart=GetObject($vStart) EndIf
If Not (9 = VarType($vStart)) Exit 87 EndIf
$sGroupList=$vStart.GetEx("memberOf")
If @ERROR Exit 0 EndIf
For Each $sGroup in $sGroupList
If Not(ASCan($GetGroups,$sGroup)+1) OR $sIndent
$GetGroups=Split(Join($GetGroups,Chr(10))+Chr(10)+SubStr($sIndent,2)+$sGroup,Chr(10))
EndIf
For Each $sChain in GetGroups("LDAP://"+$sGroup,$sIndent+Left($sIndent,1))
If Not(ASCan($GetGroups,$sChain)+1) OR $sIndent
$GetGroups=Split(Join($GetGroups,Chr(10))+Chr(10)+$sChain,Chr(10))
EndIf
Next
Next
$GetGroups=Split(SubStr(Join($GetGroups,Chr(10)),2),Chr(10))
EndFunction
Function SplitNE($String, Optional $SplitChar)
Dim $Array[0],$NumMembers,$NewMember,$MemberFound,$LenStr,$i,$ChkChr
$String = "" + $String
$SplitChar = "" + $SplitChar
If $SplitChar = ""
$SplitChar = " "
EndIf
$LenStr = Len($String)
$NumMembers = 0
$NewMember = ""
$MemberFound = 0
For $i = 1 To $LenStr
$ChkChr = SubStr($String,$i,1)
If InStr($SplitChar,$ChkChr)
If $NewMember ; If member contains text, add to array
ReDim Preserve $Array[$NumMembers]
$Array[$NumMembers] = $NewMember
$NewMember = ""
$NumMembers = $NumMembers + 1
$MemberFound = 1
EndIf
Else
$NewMember = $NewMember + $ChkChr
EndIf
Next
If $NewMember ; If only one (last) member
ReDim Preserve $Array[$NumMembers]
$Array[$NumMembers] = $NewMember
$MemberFound = 1
EndIf
If $MemberFound
$SplitNE = $Array
Else
$SplitNE = 0 ; No members found
EndIf
EndFunction
Function StrReverse($strInput)
Dim $sc
$sc = CreateObject("ScriptControl")
$sc.Language = "VBScript"
$StrReverse=$sc.Eval('StrReverse("'+$strInput+'")')
EndFunction