Link to home
Start Free TrialLog in
Avatar of dclab
dclab

asked on

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

SOLUTION
Avatar of JapyDooge
JapyDooge
Flag of Netherlands image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of dclab
dclab

ASKER

Thanks for responding JapyDooge.  Not quite what I was hoping for, but I'll give it some thought.
Anyone else have some suggestions?
ASKER CERTIFIED SOLUTION
Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial