Solved

Mapped Drives not persistent when mapped from logon script

Posted on 2007-11-15
11
683 Views
Last Modified: 2010-03-17
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
Comment
Question by:mwarstler
  • 5
  • 4
11 Comments
 
LVL 4

Expert Comment

by:cjohnsen2
ID: 20294403
The third parameter of MapDrive needs to be a boolean, not a string.

Change to:

objNet.MapNetworkDrive Drive, FileServer & Share, True
0
 
LVL 4

Expert Comment

by:cjohnsen2
ID: 20294407
Sorry, I meant MapNetworkDrive.  But you get the point.
0
 

Author Comment

by:mwarstler
ID: 20294725
cjohnsen2,

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

0
Comprehensive Backup Solutions for Microsoft

Acronis protects the complete Microsoft technology stack: Windows Server, Windows PC, laptop and Surface data; Microsoft business applications; Microsoft Hyper-V; Azure VMs; Microsoft Windows Server 2016; Microsoft Exchange 2016 and SQL Server 2016.

 

Author Comment

by:mwarstler
ID: 20297598
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
 
LVL 4

Expert Comment

by:cjohnsen2
ID: 20298021
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
 

Author Comment

by:mwarstler
ID: 20298321
My laptop users need them to be mapped when they go home and VPN into the office
0
 
LVL 4

Expert Comment

by:cjohnsen2
ID: 20298466
when they go home, do they log in to their domain account or a local account on the machine?
0
 

Author Comment

by:mwarstler
ID: 20298493
They log into thier domain account
0
 

Author Comment

by:mwarstler
ID: 20320384
The solution was to only call the vbs scipt directly and not via logon.bat
0
 

Accepted Solution

by:
ee_auto earned 0 total points
ID: 24128502
Question PAQ'd, 500 points refunded, and stored in the solution database.
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This script can help you clean up your user profile database by comparing profiles to Active Directory users in a particular OU, and removing the profiles that don't match.
Last week, our Skyport webinar on “How to secure your Active Directory” (https://www.experts-exchange.com/videos/5810/Webinar-Is-Your-Active-Directory-as-Secure-as-You-Think.html?cid=Gene_Skyport) provided 218 attendees with a step-by-step guide for…
This tutorial will walk an individual through the process of configuring their Windows Server 2012 domain controller to synchronize its time with a trusted, external resource. Use Google, Bing, or other preferred search engine to locate trusted NTP …
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …

831 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question