• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 697
  • Last Modified:

Mapped Drives not persistent when mapped from logon script

I have the attached vbs logon script being called by logon.bat. I have a 2003 Server running AD and clients are XP SP2. I can logon and the script runs no problem. My drives are mapped. However, they are not persistent. If I log into Windows, then manually run the script the drives mapped and are persistent. Any thoughts would be greatly appreciated.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' MCMAPDRIVE.vbs - maps drives for users based on group membership
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim objNet, strUserName 
Dim FileSysObj
 
On Error Resume Next
 
'Check the local ComputerName and run only if it's not a citrix server
'Set WshNetwork = WScript.CreateObject("WScript.Network")
'strSysEnvCN = WshNetwork.ComputerName 
'bolWTS =  InStr(strSysEnvCN, "JERMC6") 
'IF bolWTS=FALSE THEN
 
  Set objNet = CreateObject("Wscript.Network") 
  set FileSysObj = CreateObject("Scripting.FileSystemObject")
 
  strUserName =objNet.UserName 
  set UserObj = GetObject("WinNT://" & objNet.UserDomain & "/" & objNet.UserName)
 
  For Each Group In UserObj.groups
     Select Case Group.Name
	    
        Case "_Marketing" '80
		   MapDrive "m:", "1.2.3.4", "marketing"
	Case "_Implementation"
           MapDrive "p:", "1.2.3.4", "nsfforms"
        Case "_HR"
           MapDrive "r:", "1.2.3.4", "hr"
        Case "_InternalIT"
           MapDrive "t:", "1.2.3.4", "internalIT"
        Case "_Executives"
           MapDrive "x:", "1.2.3.4", "executives"
        Case "_Finance"
           MapDrive "y:", "1.2.3.4", "finance"
        Case "_Accounting"
           MapDrive "z:", "1.2.3.4", "accounting"
           
     End Select
  Next          
  
 
  'Call DisplayMappings
 
'End If
 
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub MapDrive(Drive, FileServer, Share) '180
     
     FileServer = "\\" & FileServer
     Share = "\" & Share
     MapCount = MapCount + 1
  'Wscript.Echo "Now Mapping " & Drive & " to " & FileServer & Share
  If FileSysObj.DriveExists(Drive) = True Then
    objNet.RemoveNetworkDrive Drive, True, True
  End If
  objNet.MapNetworkDrive Drive, FileServer & Share & ", True"
     
End Sub
 
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sub DisplayMappings()
     
     Set DriveCollection = objNet.EnumNetworkDrives
     MsgString = "You have access to following network " & vbcrlf & "drive connections: " & vbCRLF & vbCRLF
     For i = 0 To DriveCollection.Count - 1 Step 2
          MsgString = MsgString & vbCRLF & vbtab & DriveCollection(i) & Chr(9) & DriveCollection(i + 1)
     Next
     
     MsgBox MsgString,vbInformation,"Your Information Technology"
               
End Sub     
 
Wscript.quit

Open in new window

0
mwarstler
Asked:
mwarstler
  • 5
  • 4
1 Solution
 
cjohnsen2Commented:
The third parameter of MapDrive needs to be a boolean, not a string.

Change to:

objNet.MapNetworkDrive Drive, FileServer & Share, True
0
 
cjohnsen2Commented:
Sorry, I meant MapNetworkDrive.  But you get the point.
0
 
mwarstlerAuthor Commented:
cjohnsen2,

Thanks for your quick response. I'll test in the morning and reply.

0
Simplify Active Directory Administration

Administration of Active Directory does not have to be hard.  Too often what should be a simple task is made more difficult than it needs to be.The solution?  Hyena from SystemTools Software.  With ease-of-use as well as powerful importing and bulk updating capabilities.

 
mwarstlerAuthor Commented:
I'm having the same problem. If I log into Windows and run the script the drives are persistent. If I run it as a logon script they are not persistent. I've also tried this with the same results.


Set SH = CreateObject("WScript.Shell")
Set FileSysObj = CreateObject("Scripting.FileSystemObject")
SH.Run "NET USE " & Drive & " /delete"
SH.Run "NET USE " & Drive & " " & FileServer & Share & " /Persistent:YES"
'Wscript.Echo "net use " & Drive & " " & FileServer & Share & " /Persistent:YES"
0
 
cjohnsen2Commented:
A potentially obvious question for both of you:

If you have the drive mappings in a logon script, why do you need them to be persistent?  They'll re-map each time you log on.

If you're saying that they're not persistent because you are logging in to a different user profile that doesn't run the script.. well, yeah, they wouldn't be.
0
 
mwarstlerAuthor Commented:
My laptop users need them to be mapped when they go home and VPN into the office
0
 
cjohnsen2Commented:
when they go home, do they log in to their domain account or a local account on the machine?
0
 
mwarstlerAuthor Commented:
They log into thier domain account
0
 
mwarstlerAuthor Commented:
The solution was to only call the vbs scipt directly and not via logon.bat
0
 
ee_autoCommented:
Question PAQ'd, 500 points refunded, and stored in the solution database.
0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now