Solved

Access and edit users' Start Menu entries in VBScript login script

Posted on 2008-10-06
2
869 Views
Last Modified: 2012-05-05
As part of our login script, there is a part to clean up the Start Menu for each user, as we have several Windows XP workstations running on a Windows Server 2003 network. Currently I'm using a batch file as the login script, but I'm in the process of converting it all to a VBScript, to allow for additional functionality in setting up Outlook and printers based on AD credentials.

The script should be able to:
1) Delete the Outlook Express shortcut, if found, from a user's Start Menu folder;
2) Delete the Sophos folder (if found) from the All Users Start Menu;
3) Set the Hidden attribute on both Startup folders; and
4) Sort the order of the Start Menu.

Attached is what I have so far this in a batch file; I am struggling to replicate this functionality in VBScript, but have encountered problems as I can't seem to find a way of accessing the %userprofile% equivalent in VBScript, just the absolute path (which obviously won't work for a login script).
if exist "%USERPROFILE%\Start Menu\Programs\Outlook Express.lnk" (

del /q "%USERPROFILE%\Start Menu\Programs\Outlook Express.lnk"

)

if exist "C:\Documents and Settings\All Users\Start Menu\Programs\Sophos\" (

rd /s /q "C:\Documents and Settings\All Users\Start Menu\Programs\Sophos\"

)

attrib +H "%USERPROFILE%\Start Menu\Programs\Startup\" /S

attrib +H "C:\Documents and Settings\All Users\Start Menu\Programs\Startup\" /S

REGPERM /K HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder /A:Everyone:R /Q

Open in new window

0
Comment
Question by:skrysiak
2 Comments
 
LVL 38

Accepted Solution

by:
Shift-3 earned 250 total points
Comment Utility
Paste the script below into a text file with a .vbs extension.  Running it should accomplish the desired objectives.


Set objShell = CreateObject("WScript.Shell")

strAllUsersProfile = objShell.ExpandEnvironmentStrings("%allusersprofile%")

strUserProfile = objShell.ExpandEnvironmentStrings("%userprofile%")
 

Set objFSO = CreateObject("Scripting.FileSystemObject")
 

If objFSO.FileExists(strUserProfile & "\Start Menu\Programs\Outlook Express.lnk") Then

    objFSO.DeleteFile strUserProfile & "\Start Menu\Programs\Outlook Express.lnk", True

End If
 

If objFSO.FolderExists(strAllUsersProfile & "\Start Menu\Programs\Sophos") Then

    objFSO.DeleteFolder strAllUsersProfile & "\Start Menu\Programs\Sophos", True

End If
 

If objFSO.FolderExists(strUserProfile & "\Start Menu\Programs\Startup") Then

    Set objStartup = objFSO.GetFolder(strUserProfile & "\Start Menu\Programs\Startup")

    objStartup.Attributes = 19

End If
 

If objFSO.FolderExists(strAllUsersProfile & "\Start Menu\Programs\Startup") Then

    Set objStartup = objFSO.GetFolder(strAllUsersProfile & "\Start Menu\Programs\Startup")

    objStartup.Attributes = 19

End If
 

objShell.Run "REGPERM /K HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder /A:Everyone:R /Q"

Open in new window

0
 

Author Closing Comment

by:skrysiak
Comment Utility
Sweet! Works perfectly, thanks for your help.
0

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
When you start your Windows 10 PC and got an "Operating system not found" error or just saw  "Auto repair for startup". After a while, you have entered a loop for Auto repair which does not fix anything and you will be in a  panic as all your work w…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now