Aaron Posted October 2, 2009 Posted October 2, 2009 Hoping that someone can help me with this problem. I have got the redirection of the start menu and it works a treat the pupils are redirected to the correct start menu that I want them to see and so far everything seems to be working fine. What I am wanting to know is that when I install software onto the workstations not all machines have the same software installed. Is it possible to hide program folders which are not installed so that the pupils do not just get the standard windows icon when the software is not installed on that station. Is there a policy that I can set to do this? Any help would be much appreciated
cookie_monster Posted October 2, 2009 Posted October 2, 2009 Unfortunately this is not a feature that is available in Windows. I've seen some people use VB scripts to 'build' a start menu at logon but this is no easy task. There are third party apps that do this e.g. RM. It could be possible I suppose to use 'Access Based Enumeration' and security groups to hide icons by putting stations into security groups but I haven't tried this. http://www.windowsnetworking.com/articles_tutorials/Implementing-Access-Based-Enumeration-Windows-Server-2003.html 1
Aaron Posted October 2, 2009 Author Posted October 2, 2009 thank you very much for your reply i will have to look into it more
siuko Posted October 2, 2009 Posted October 2, 2009 With our redirected start bars we only have links for programs that are available on all computers. If we have software that is only to be available on a few computers we make the link local on the computer itself - by making sure it is in c:\Documents and Settings\All Users\Start Menu\Programs. This will then only show on those computers you want it on. Windows will read the program links from your redirected folder and also the all user folder and show them together. This is WinXP client btw 1
cookie_monster Posted October 2, 2009 Posted October 2, 2009 @ siuko - Good idea that works well as long as there aren't unwanted icons in All Users there tends to be loads by default.
leco Posted October 2, 2009 Posted October 2, 2009 Also if access to the Programmes menu is restricted, for pupils, then they may not see apps from the All User Group.
PiqueABoo Posted October 2, 2009 Posted October 2, 2009 this is no easy task Yup. I've done it at computer startup: 1) Copy SMs from share to local box (RC mirror), 2) Delete "unresolved" shortcuts and any subsequently empty folders, 3) Redirect user to relevant local SM at logon. The second bit is where the serious script came in and although I'm an old hand at all the ingredients involved, it was quite tricky.
cookie_monster Posted October 3, 2009 Posted October 3, 2009 TBH I find it easier to break the start menu into subject sub folders, the users only look in the folder for the subject they currently studying so they don't see loads of blank icons. They soon learn that if they click an icon and nothing happens it's a fair bet the software isn't installed
Michael Posted October 3, 2009 Posted October 3, 2009 I've not tried this, but see if enabling the following helps: User Config > Admin Templates > Start Menu and Taskbar Gray unavailable Windows Installer programs Start Menu shortcuts 1
maniac Posted October 3, 2009 Posted October 3, 2009 It's not to hard to achieve with VB script, my start menus are built locally on the machine at workstation startup by copying icons from various icon banks on the netlogon share depending on the workstations OU. The students startmenu is then directed to this local icon cache, which works very well. I've also written another version which tests the workstation to see if the executable is present before copying the shortcut. This means shortcuts would be automatically distributed as soon as a particular piece of software was installed on a machine, but I'm still in testing with that script as there's some bugs in it at the moment, I've also written a VB.NET program to assist with building the script to achieve this which I will release on here eventually. Mike.
maniac Posted October 3, 2009 Posted October 3, 2009 (edited) This is the script which reads machines OUs and will copy a different set of icons depending on OU membership. It should work, but I've cut it out of our much larger station startup script so apologies if it's missing anything it needs. Run it as a workstation startup script. Quite self explanatory, creates a folder called 'icon groups' on the C:\ of the machine and then copies across relevant folders from the net logon share. It also sets a marker flag in the way of a simple file, so it only copies over the icons if the marker flag on the machine is different from the script, this cuts down on un-necessary network traffic at machine startup, it's only really necessary to copy them if they've changed, and how often do you actually change the icons on your workstations? You can add as many case statements as you want to the script, up to the number of different OU's that you have. You may need to combine this script with XCACLS to set the permissions on the folder, depending on how your permissions to the C:\ are setup, or you can end up with the students saving things to the desktop folder if you're not careful. Const OverWriteFiles = True Set objFSO = CreateObject("Scripting.FileSystemObject") dim strfile 'ICON DELIVERY 'Set Version number ' ##################### ' # To Copy new icons # ' # Increment the # ' # value Below. # ' ##################### strfile="v1.11" ' ### DO NOT MODIFY BELOW THIS LINE ### ' ### Check to see if version file exists. If it does no action is taken as should be latest icon set already. ### If Not objFSO.FileExists("c:\ICONGROUPS\STUDENTS\" & strfile) then '### Check to see is Icon folders exist, if not create folder ### If Not objFSO.FolderExists("c:\ICONGROUPS") then objFSO.CreateFolder("c:\ICONGROUPS") end if '### Delete old icon cache if it exists ### If objFSO.FolderExists("c:\ICONGROUPS\STUDENTS") then objFSO.DeleteFolder("C:\ICONGROUPS\STUDENTS"),TRUE end if '#### Copy icon cache from server ### objFSO.CopyFolder "\\SERVER\netlogon\ICON BANK\MAIN" , "C:\ICONGROUPS\STUDENTS" , OverWriteFiles '### Setup for reading machine OU and copy extra icons according to OU membership. ### Set objWshNetwork = CreateObject("WScript.Network") Set objAdsSystemInfo = CreateObject("adsysteminfo") Set objComputerName = GetObject("LDAP://" & objAdsSystemInfo.ComputerName) Set objOU = GetObject(objComputerName.Parent) strOU = replace(objOU.Name,"OU=","") '### For each case statement, as seperate folder can exist ### Select Case strOU Case "Enterprise Area 1" objFSO.CopyFolder "\\SERVER\netlogon\ICON BANK\Enterprise" , "C:\icongroups\students" , OverWriteFiles Case "Enterprise Area 2" objFSO.CopyFolder "\\SERVER\netlogon\ICON BANK\Enterprise" , "C:\icongroups\students" , OverWriteFiles Case "Room 22" objFSO.CopyFolder "\\SERVER\netlogon\ICON BANK\Room22" , "C:\icongroups\students" , OverWriteFiles End Select '### Create version number txt file ### Set objFile = objFSO.CreateTextFile("c:\ICONGROUPS\STUDENTS\" & strFile) END IF Mike Edited October 3, 2009 by maniac 3
irsprint Posted October 3, 2009 Posted October 3, 2009 I ve done this recetly with Group Policy Preferences, I delete (for example) allusers\startmenu\SimsApplications when student logs in and re-add for staff users when they log on
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now