Link to home
Create AccountLog in
Avatar of rbudj
rbudjFlag for United States of America

asked on

Using a batch file to create desktop shortcuts

I'm using Windows Server 2008 Standard with Windows XP clients.  All clients are on a domain.  I need to create a batch script that will load desktop shortcuts when the user logs in.  I know how to assign the batch file to the OU's but I need help with the batch file creation itself.  Here is the kicker... my shortcuts have a Target path that is different than the Start in path.  Here is an example:

In the shortcut properties...

Target: C:\FamousSoftware\Famous.exe

Start in: Z:\FamousSoftware

so basically the target is for the local computer and the start in is a mapped network drive on the server.  Any help?  
Avatar of ConnectNZ
ConnectNZ

How is the batch file creating the shortcuts? Is it copying them from a central location? Surely if they are pre-configured with the Target and Start-in values, they will retain those values once the shortcuts are copied to the users' desktops.
I don't know if this is any help, but check out

http://www.msfn.org/board/index.php?showtopic=29964&hl=creat+shortcut

It uses a inf file to create a shortcut, and looks like you can modify the folder/etc. Uses a cmd file but same thing as a bat file I believe really. If this doesn't help I do apologize! Was looking around for you and it's all I found. It's easy to create a shortcut but the kicker you have there is the issue!
Avatar of rbudj

ASKER

I have a logon batch file already in place to map a network drive so I have to use this same batch file to create the shortcuts.  Currently there is no script to create the shortcuts.  That is why I am asking here.  I can place the shortcuts in on the server and copy them but I do not know how to create the batch file to do so.
ASKER CERTIFIED SOLUTION
Avatar of ConnectNZ
ConnectNZ

Link to home
membership
Create a free account to see this answer
Signing up is free and takes 30 seconds. No credit card required.
See answer
If you are not set on using a batch file, here is a vbscript that you can assign with a gpo to create the shortcut for you.
Will place the shortcut in the "All Users" desktop folder.

copy and paste the script into notepad modify configuration where noted and save as Filename.vbs put it where your gpo can get to it.



zf


Option Explicit
	Dim strTargetDirectory
	Dim strTargetFile
	Dim strStartIn
	Dim strDESTFolder
	Dim strNEWlink
	Dim strLinkFileName
	Dim strLinkDescp
	Dim objShell
			
			'EDIT LINK CONFIGURATION HERE AS NEEDED
			strLinkFileName = "Link_To_Boot_INI"
			strLinkDescp ="Custom Shortcut Description"
			strTargetDirectory = "c:\"
			strTargetFile = "boot.ini"
			strStartIn = "d:\"
		
	Set objShell = CreateObject("WScript.Shell")
	strDESTFolder = objShell.SpecialFolders("AllUsersDesktop")
	Set strNEWlink = objShell.CreateShortcut(strDESTFolder & "\" & strLinkFileName & ".lnk")
	strNEWlink.Description = strLinkDescp
	strNEWlink.TargetPath = strTargetDirectory & strTargetFile
	strNEWlink.WorkingDirectory = strStartIn
	strNEWlink.IconLocation = "C:\Windows\System32\SHELL32.dll, 13" 
	strNEWlink.Save
	
	WScript.Quit(0)

Open in new window

One more thing I should have mentioned,

After the shortcut is created on first gpo apply, when the gpo that calls the script updates the next time it will overwrite the shortcut properties if the link file name has not changed, if you change the link file name it will create a new link and leave the old one.

So if you never change the script only one shortcut will appear regardless of updates applied,

If you need to change the properties of the link do so in the script but leave the link file name the same and on next apply the link will be updated.

If you wish to rename the link then you will need to add to this script to delete the old link and create the new one.


hoping this makes sense,  if not let me know.


zf
btw you can call the vbscript from your existing batch file.



zf
Avatar of rbudj

ASKER

im still working on this... will report back
Avatar of rbudj

ASKER

thank you.  I did it a bit differently but you were on the right track and is very close to my solution.
If you need help implementing it just ask.



zf
Great work, zoofan. Thanks!