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

Add mapped network drives to computer search path

Greetings,
Back in the popular days of Novell NetWare, there was a nice ability to define 'search drives' in a login script.  These were special network drive mappings that appeared as if they were in the local computer's PATH.    

Therefore my first question would be:  does anyone know of some equivalent app to use for Windows?

Assuming the answer of 'no', my next question is:  can anyone provide some pointers on improving an existing script?  

Enclosed is a script my predecessor used to accomplish the goal.  I don't know VB myself, but I can follow along with what it's supposed to do.  While the script does come close to what I need, it also has some drawbacks:
1. It doesn't seem to work on Vista workstations.

2. On some workstations it doesn't recognize that the script has been processed before.  It's not uncommon to see a machine with these drives added three, four, sometimes even five times to the local PATH.  Meanwhile other machines have the PATH set correctly.

3. I'd like the ability of removing these entries altogether when a user logs out from the LAN (mainly for people working offline).  I know this would be a separate script, but I'm uncertain on how to do this.

I appreciate any advice you can offer.  Thanks!


Const ForReading = 1
Dim WSHShell,strAutoLogon,strPassword,strNeed,MaybeneedW,MaybeneedX,MaybeneedY,MaybeneedZ
MaybeneedW=1
MaybeneedX=1
MaybeneedY=1
MaybeneedZ=1
strNeed=""
Set WSHShell = WScript.CreateObject("WScript.Shell")
strOrgPath = WSHShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\path")
Searchpath=Split(strOrgPath,";")
y=UBound(Searchpath)
x=0
While x<=y
	Wisthere=StrComp("W:\BIN\SETUP\",Searchpath(x),1)
	Xisthere=StrComp("X:\BIN\PGM\",Searchpath(x),1)
	Yisthere=StrComp("Y:\bin\src\",Searchpath(x),1)
	Zisthere=StrComp("Z:\public\",Searchpath(x),1)
	If Wisthere=0 then
			MaybeneedW=0
	End If	
	If Xisthere=0 then
			MaybeneedX=0
	End If				
	If Yisthere=0 then
			MaybeneedY=0
	End If	
	If Zisthere=0 then
			MaybeneedZ=0
	End If		
x=x+1
Wend
 
	If MaybeneedZ=1 Then
		strNeed=strNeed&";Z:\public\"
	End If
	If MaybeneedY=1 Then
		strNeed=strNeed&";Y:\bin\src\"
	End If
	If MaybeneedX=1 Then
		strNeed=strNeed&";X:\BIN\PGM\"
	End If
	If MaybeneedW=1 Then
		strNeed=strNeed&";W:\BIN\SETUP\"
	End If
	
strNeed=Join(searchpath,";")&strNeed
WSHShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\path", strNeed
WScript.Quit(0)

Open in new window

0
dclab
Asked:
dclab
  • 2
2 Solutions
 
JapyDoogeCommented:
Hmm maybe it will work if you remap the to a local folder using subst and add that folder to the path environment variable?
0
 
dclabAuthor Commented:
Thanks for responding JapyDooge.  Not quite what I was hoping for, but I'll give it some thought.
Anyone else have some suggestions?
0
 
dclabAuthor Commented:
Apparently Group Policy has been extended in Windows 2008 to allow you control over many more features of the workstation.  I'm likely to go this route, in fact probably replacing the entire login script with GP settings.
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.

Join & Write a Comment

Featured Post

Improve Your Query Performance Tuning

In this FREE six-day email course, you'll learn from Janis Griffin, Database Performance Evangelist. She'll teach 12 steps that you can use to optimize your queries as much as possible and see measurable results in your work. Get started today!

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