Mapping network drives and placing shorcuts of them


Recommended Posts

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?

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:

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...

Set objShortCut = objShell.CreateShortcut(strDesktopFolder & "\k:.lnk")
...
Set objShortCut = objShell.CreateShortcut(strDesktopFolder & "\J:.lnk")

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.