Windows 2008 VB logon script map drive by group membership

Hello,

I used a basic VB script I found on a microsoft site.  The home directory part is working but the group membership mappings are not working. If anyone can tell me what Im doing wrong id appreciate it.  Here is the script I used:


Const Finance_GROUP     = "cn=SG_Finance"
Const IT_GROUP          = "CN=SG_IT"

Set wshNetwork = CreateObject("WScript.Network")
wshNetwork.MapNetworkDrive "h:","\\njfile\us$\" & wshNetwork.UserName

Set adSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroups = LCase(Join(CurrentUser.MemberOf))

If InStr(strGroups, finance_GROUP) Then

    wshNetwork.MapNetworkDrive "J:","\\njfile\finance"

ElseIf InStr(strGroups, IT_GROUP) Then

    wshNetwork.MapNetworkDrive "J:","\\njfile\it$\"


End If
serverbobAsked:
Who is Participating?
 
Kent DyerConnect With a Mentor IT Security Analyst SeniorCommented:
I think is more what you are looking for..
http://technet.microsoft.com/en-us/magazine/2006.03.scriptingguy.aspx

HTH,

Kent
0
 
netballiConnect With a Mentor Commented:
Very simple the line

"strGroups = LCase(Join(CurrentUser.MemberOf))"

StrGroups is a array value and you should be spliting the array into its different value like

StrGroups(0), StrGroups(1)......and so on and check for the appropriate group.
0
 
Kent DyerConnect With a Mentor IT Security Analyst SeniorCommented:
0
 
Robberbaron (robr)Connect With a Mentor Commented:
the scipt itself looks ok as the Join function merges all the array elements of CurrentUser.MemberOf into a single string.

Can you add
Wscript.echo strgroups 

Open in new window

after the line that creates StrGroups to check what it's value is. ?

May need to check that it is not empty as well.

the link provided by kent shows a different object used to get membership.
as does this... which i know works.
' ****************************************************************************
**********************

function InGroup(sGroup)
on error resume next
'Checking to see if user is in " & sGroup & " group")

set oDomGrp = GetObject("WinNT://" & sNTDomain & "/" & sGroup)

InGroup = false

if oDomGrp.isMember("WinNT://" & sNTDomain & "/" & sUserName) then
  InGroup = true
else
  InGroup = false 
end if
end function

Open in new window

0
 
serverbobAuthor Commented:
Thanks everyone.  Got it working!
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.