Below is the scripts I made. For drivemappings, I get the servername out of the user's local groups and the sharename out of the user's global groups. PROBLEM: Some users are in several matching local and global groups so they will get the same drivemapping twice. How can I prevent this or delete an identical drivemapping on another driveletter? [Confused]

Break on ; Make this script interruptable using close or ctrl-C
Debug OFF
; cls

; Standard reserved driveletters
$WerkLetter = "GJKL-"
$ApplLetter = "QRP-"
$ProjLetter = "STUV-"

; Get all Local and Global Groups
$arLocal = GetUserLocalGroups()
$arGlobal = GetUserGlobalGroups()

; Set LogonDomain
$strDomain = @LDOMAIN

; walk all Local Groups
For Each $strLocalGroup in $arLocal

;? $strLocalGroup

; Get all Global Groups in this LocalGroup
$arGlobalInLocal = GetGlobalInLocal($strLocalGroup, $strDomain)

; Walk all Global Groups in this LocalGroup
For Each $strGlobalInLocal in $arGlobalInLocal

; ? $strGlobalInLocal

For Each $strglobal in $arGlobal
; ? $strglobal
If $strglobal = $strGlobalInLocal
$line = "\\" + $strLocalGroup + "\" + $strglobal
? $line
EndIf

; Build share name
; MakeMapping($strLocalGroup, $strGlobalLocalGroup)
; Endif
Next
Next
Next

Function GetUserLocalGroups()

$LTeller = 0
Do
$LGroup = EnumLocalGroup($LTeller)
$LTeller=$LTeller+1
$GetUserLocalGroups = $GetUserLocalGroups + ";" +$LGroup
Until Len($LGroup) = 0
$GetUserLocalGroups = Split($GetUserLocalGroups, ";")

EndFunction

Function GetUserGlobalGroups()

$GTeller = 0
Do
$GGroup = EnumGroup($GTeller)
$GTeller=$GTeller+1
$GetUserGlobalGroups = $GetUserGlobalGroups + ";" +$GGroup
Until Len($GGroup) = 0
$GetUserGlobalGroups = Split($GetUserGlobalGroups, ";")

EndFunction

Function GetGlobalInLocal($strLocalGroup, $strDomain)

Dim $i,$error,$line
Dim $array[255]
Dim $ReDim $ReDim = Ubound($array)
Dim $tempfile $tempfile = "%temp%\pipe.tmp"

If Exist("$tempfile")
Del("$tempfile")
EndIf
Shell '%comspec% /c local "$strLocalGroup" "$strDomain" > "$tempfile" 2>nul'
$error = @error
If Open (10, "$tempfile") = 0
$i = 0
$line = ReadLine(10)
While NOT @error
If $line
$array[$i] = $line
If $i = $ReDim
$ReDim = $ReDim*2
ReDim preserve $array[$ReDim]
EndIf
$i = $i + 1
EndIf
$line = ReadLine(10)
Loop
$=Close(10)
Del "$tempfile"
If $i > 0
ReDim preserve $array[$i-1]
$GetGlobalInLocal=$array
Else
$GetGlobalInLocal = 0
EndIf
Exit $error
Else
$GetGlobalInLocal = 0
Exit @error
EndIf

EndFunction

;Parse servername from LocalGroup name
Function GetServerFromLocalGroup($strLocalGroup)

$GetServerFromLocalGroup = SubStr($strLocalGroup, 3, Len($strLocalGroup) - 2)

EndFunction

;Parse ShareName from GlobalGroup name
Function GetShareNameFromGlobalGroup($strGlobalGroup)

$GetShareNameFromGlobalGroup = SubStr($strGlobalGroup, InStr($strGlobalGroup, "_") + 1)

EndFunction

Function CheckStringINArray($arGlobal, $strGlobalLocalGroup)

$CheckStringINArray = 0
For Each $strToCheck IN $arGlobal

?$strToCheck
?$strGlobalGroup
If ($strToCheck == $strGlobalGroup)
$CheckStringINArray = 1
EndIf
Next

EndFunction

Function MakeMapping($strLocalGroup, $strGlobalGroup)

? "Share: \\" + GetServerFromLocalGroup($strLocalGroup) + "\" + GetShareNameFromGlobalGroup($strGlobalGroup)

EndFunction