Help with mapping user home directory via vbs script

Hi experts, I am just about finished with my login script thanks to some help I got already on here. Now I just need to map the home directory. I have included my entire script for reference but the part I am looking for help with is this line:

   MapDrive "g:", "\\server1\user$\" & CurrentUser

Can anyone tell me what I've done wrong?

Thanks!
' =========== Start Of Script
 
Option Explicit
' On Error Resume Next
 
DIM oShell, oNetwork, oPrinters, oDrives
DIM ADSysInfo, CurrentUser, LogServer
DIM UsrGrp, i
Dim strDriveLetter, strDrivePath
 
 
 
' =======================================================         Pull in logged on Users Info
 
  Set oShell = CreateObject("WScript.Shell")
  LogServer = oShell.ExpandEnvironmentStrings("%logonserver%")
  Set ADSysInfo = CreateObject("ADSystemInfo")
  Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)  
 
 
' =======================================================         Delete All Printers & Network Drives except the H: Drive
 
  Set oNetwork = CreateObject("WScript.Network")            
'  Set oPrinters = oNetwork.EnumPrinterConnections
'  
'  ' === Printers
'  
'     For i = 0 to oPrinters.Count - 1 Step 2
'      If Left(ucase(oPrinters.Item(i+1)),2) = "\\" Then
'        oNetwork.RemovePrinterConnection oPrinters.Item(i+1)
'      End If
'    Next
'  
'  ' === Drives
  
    Set oDrives = oNetwork.EnumNetworkDrives
    For i = 0 to oDrives.Count - 1 Step 2
'    	If oDrives(i) <> "H:" Then
       oNetwork.RemoveNetworkDrive oDrives(i), True, True
'     End If
    Next
 
 
' =======================================================        Map Printers
 
'To map printers use:
'oNetwork.AddWindowsPrinterConnection "PrinterLocation eg \\server\hp-printer"
 
'To set mapped printer as default:
'oNetwork.SetDefaultPrinter "PrinterPath"
 
 
' =======================================================        Map H & G Drives
 
   MapDrive "h:", "\\server1\dept"
   MapDrive "g:", "\\server1\user$\" & CurrentUser
 
 
' =======================================================        Map Drives Based on Group Membership
' 
 
   For Each UsrGrp In CurrentUser.Groups
  
     Select Case uCase(right(Usrgrp.Name,Len(UsrGrp.Name) - 3))
    
     Case "FINANCE"
       MapDrive "i:", "\\server7\finance"
       MapDrive "p:", "\\server4\fasserv"
 
     Case "CENTRAL SCANNER"
       MapDrive "j:", "\\server2\file_share"
 
     Case "R13 SHOP-AT-HOME DISTRIBUTION LIST"
       MapDrive "j:", "\\server2\file_share"
 
     Case "HELIOSPCUSERS"
       MapDrive "k:", "\\server3\marketing"
 
     Case "TECHNOLOGY"
       MapDrive "s:", "\\server1\install$"
       MapDrive "n:", "\\server1\Minime"
 
     Case "ONDEMANDDEV"
       MapDrive "l:", "\\server5\content"
 
     Case "HUMAN RESOURCES"
       MapDrive "k:", "\\server6\Connect"
 
     Case "BSTL"
       MapDrive "O:", "\\server1\BSTL$"  
 
     End Select
   Next
 
 Sub MapDrive(strDriveLetter, strDrivePath)
   oNetwork.MapNetworkDrive strDriveLetter, strDrivePath
 End Sub
 
' =======================================================        Set the default SAP Environment Variable
 
 
   oshell.run "setx SAPLOGON_INI_FILE ""h:\sapgui\all\saplogon.ini""", 6, True
 
 
' =======================================================        Map a SAP Group-Specific Environment Variable
 
  For Each UsrGrp In CurrentUser.Groups
 
    Select Case uCase(right(Usrgrp.Name,Len(UsrGrp.Name) - 3))
 
    Case "SAPGUIFULL"
      oshell.run "setx SAPLOGON_INI_FILE ""h:\sapgui\full\saplogon.ini""", 6, True
 
    Case "SAPGUIBWFULL"
      oshell.run "setx SAPLOGON_INI_FILE ""h:\sapgui\bwfull\saplogon.ini""", 6, True
 
    Case "SAPGUIBW"
      oshell.run "setx SAPLOGON_INI_FILE ""h:\sapgui\bw\saplogon.ini""", 6, True
   
    Case "SAPGUIDEV"
      oshell.run "setx SAPLOGON_INI_FILE ""h:\sapgui\dev\saplogon.ini""", 6, True
 
    Case "SAPGUIDOMAIN"
      oshell.run "setx SAPLOGON_INI_FILE ""h:\sapgui\DOMAIN\saplogon.ini""", 6, True
      
    End Select
  Next  
  
  WScript.Quit

Open in new window

wallakylAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

DonNetwork AdministratorCommented:
Try

 oShell.MapNetworkDrive "g:", "\\server1\user$\" & CurrentUser,True
0
wallakylAuthor Commented:
I had tried that, but it gives me an error:

Microsoft VBScript runtime error: Wrong number of arguments or invalid property assignment

See screenshot at bottom of thread.
0
DonNetwork AdministratorCommented:
What does line 59 now read?
0
Making Bulk Changes to Active Directory

Watch this video to see how easy it is to make mass changes to Active Directory from an external text file without using complicated scripts.

wallakylAuthor Commented:
The new line you gave me - I changed it to this...the last line is 59

MapDrive "h:", "\\server1\dept"
'MapDrive "g:", "\\server1\user$\" & CurrentUser
oShell.MapNetworkDrive "g:", "\\server1\user$\" & CurrentUser,True
0
DonNetwork AdministratorCommented:
Try creating a value for the path

set homepath="\\server1\user$\" & CurrentUser

add homepath to your dims

then change to

oShell.MapNetworkDrive "g:", homepath,True
0
wallakylAuthor Commented:
Same error unfortunately - this time in the:


set homepath="\\server1\user$\" & CurrentUser
0
DonNetwork AdministratorCommented:
0
wallakylAuthor Commented:
Yeah, that's why I don't understand why it isn't working. That's how I have it I think.
0
DonNetwork AdministratorCommented:
you can use wscript.echo to display any values getting set to see if the error may be with one of your values

Like

 wscript.echo CurrentUser
0
napierccCommented:
Hi,

here is a little tidbit of script courtesy of www.rlmueller.net.

---------------------------------------------------------------------------

' Map user home directory.
strHomeShare = objUser.homeDirectory
If (strHomeShare <> "") Then
    strHomeDrive = objUser.homeDirDrive
    If (strHomeDrive = "") Then
        strHomeDrive = "H:"
    End If
    On Error Resume Next
    objNetwork.MapNetworkDrive strHomeDrive, strHomeShare
    If (Err.Number <> 0) Then
        On Error GoTo 0
        objNetwork.RemoveNetworkDrive strHomeDrive, True, True
        objNetwork.MapNetworkDrive strHomeDrive, strHomeShare
    End If
    On Error GoTo 0
End If

-----------------------------------------------------------------------------------------

The full script can be found at: http://www.rlmueller.net/Programs/Logon1.txt

It uses a different method of determining the current user and does some checking to make sure the drive isn't already mapped.

Hope this is helpfull for you.

cheers
Glen
0
wallakylAuthor Commented:
This seems to be working...
  strUserName = oNetwork.UserName
  strHomePath = "\\server1\users$" & "\" & strUserName
  oNetwork.MapNetworkDrive "g:", strHomePath 

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
DonNetwork AdministratorCommented:
There you go ;^D
0
oBdACommented:
On a side note: if the home drive and share is defined in the user's properties in ADUC (as it should be), then you won't have to map it in the logon script at all (you'd only have to exclude it from being deleted in line 36ff).
During logon, this drive will be automatically mapped. In addition, having the home drive property set in AD will as well set the environment variables HOMEDRIVE, HOMEPATH, HOMESHARE correctly; some programs evaluate these variables, and if there's no home drive specified in the user's properties, these variable will point to the local profile.
0
wallakylAuthor Commented:
The attached file replaces the file I attached in comment 24759579.
screenshot.jpg
0
oBdACommented:
Line 61 above is empty; you'll need to post the exact script that is producing this error.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
VB Script

From novice to tech pro — start learning today.