• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 274
  • 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

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

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