Help - Search - Members - Calendar
Full Version: Mapping network drives and placing shorcuts of them
Neowin Forums > Windows Support > Windows NT4/2000/2003/2008 Server
Steefke
Hi there,
i've made a script wich maps the users homedir and places a shortcut on the desktop.
I've put the network drive icon in the script and tested it.
The funny thing is the first time the script runs it just runs perfect, but when u press F5, the icon network drive icon dissapears and when u click the icon wich appears instead u will get the "open program with" pop up screen..

Here is the code:

Option Explicit
Dim objNetwork, objUser, CurrentUser
Dim strGroup, strDesktopFolder
Dim objshell, objshortcut

'Initialise Groups with Const
Const test_Group = "cn=testgroep"
Const iedereen_Group= "cn=iedereen"

' Create objects and extract strGroup values
Set objNetwork = CreateObject("WScript.Network")
Set objUser = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & objUser.UserName)
strGroup = LCase(Join(CurrentUser.MemberOf))




'*************Networkmapping shortcuts*************

'Datainc\data snelkoppeling
Set objShell = WScript.CreateObject("WScript.Shell")
strDesktopFolder = objShell.SpecialFolders("allusersDesktop")
Set objShortCut = objShell.CreateShortcut(strDesktopFolder & _
"\k:.lnk")
objShortCut.TargetPath = chr(34) & "\\servername\data" & chr(34)
ObjShortCut.IconLocation = "C:\windows\system32\shell32.dll, 9"
objShortCut.Save

'homedrive snelkoppeling
Set objShell = WScript.CreateObject("WScript.Shell")
strDesktopFolder = objShell.SpecialFolders("allusersDesktop")
Set objShortCut = objShell.CreateShortcut(strDesktopFolder & _
"\J:.lnk")
objShortCut.TargetPath = "\\servername\users\"_
& objNetwork.UserName
ObjShortCut.IconLocation = "C:\windows\system32\shell32.dll, 9"
objShortCut.Save

Can someone please tell me what i am doing wrong?

]SK[
Sorry I cannot help with the scripting. But how about putting the shortcut in the All Users\Desktop directory?
Steefke
Quote - (]SK[ @ Jul 28 2008, 12:35) *

Sorry I cannot help with the scripting. But how about putting the shortcut in the All Users\Desktop directory?


OMG...
here's a brilliant idea smile.gif
But this only works for new workstations?
and i want to implement this for the entire organisation..

]SK[
Should work for any windows PC.
Steefke
Quote - (]SK[ @ Jul 28 2008, 13:41) *

Should work for any windows PC.

Yeah i know,
but we use roaming profiles also and i don't want to copy the shortcut onto every single pc into the all users\desktop folder?


]SK[
It will still work.
peachey
Why are you creating a new icon for it, couldn't you just set the My Documents icon on the desktop to use a predetermined path with a server policy?
SLeeM@N
You might wanna check Windows Server Policies instead ... doesn't need a script to achieve what your asking!
Well, I presume you have a domain.

Welcome by the way!
random_n
For the home drive, you'd really have a simpler time with a user logon script and a two line batch file. First, create the shortcut to K:\ with Explorer, and save it to a publicly accessible network share. Then run a script like

net use K: "\\server\Users\%username%" /persistent:yes
copy "\\server\IT\Public Desktop\Home.lnk" "%userprofile%\Desktop\Home.lnk"


Note that if you use actual "Home" drives as specified in the account page in Active Directory Users and Computers, your Vista computers will hang and pause at every turn if they're not attached to the network as in the common case of the laptop (the XP ones will do the same, but not as often). Running the "net use" bits and leaving the "Home" drive set to local will avoid that, while the %username% variable will make sure that the psuedo-home drive goes to the right place.

If you want to reassign the Desktop or My Documents to a network share, use Group Policy. If you use roaming profiles, I'd highly recommend doing that, as it prevents those folders from being copied around at each logon/logoff, and thus speeds things up a ton. Offline files is a nifty feature to use with this as well, but it can be unstable at times.

Also, make sure you use TEST groups in Active Directory when going through all of this. Cleaning up after redirecting the Documents folders incorrectly can be a real pain. pinch.gif
fault
Personally, if I had shortcuts to create on the client, I would copy them over from a server share (e.g., \\server\shortcuts\kdrive.lnk) if required (just add a check to see if the file exists first before copying). Never tried it your way using the CreateShortcut function. Nonetheless, I guess if it's supported, it should work.

Anyway, I've had a quick squiz of your code, I don't think these lines are valid because windows filenames cannot have ":" characters in them, so you might want to fix that up? Maybe that's causing you grief...

CODE
Set objShortCut = objShell.CreateShortcut(strDesktopFolder & "\k:.lnk")
...
Set objShortCut = objShell.CreateShortcut(strDesktopFolder & "\J:.lnk")
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.