使用Windows Server 2012通过GPO禁用“所有程序”中的所有项目
我已将“从开始菜单中删除公共程序组”设置为已启用。
“所有程序”中的所有内容现在都是空的,如何在“所有程序”中添加Internet Explorer,记事本和Microsoft Word等特定项目?
您不能通过使用传统的组策略来做到这一点,但是您需要做的是将快捷方式(.lnk)复制到相应的目录。
您可以通过使用组策略首选项或启动/login脚本等来实现此目的。
如果您正在redirect您的开始菜单,那么您需要将快捷方式复制到的位置。
如果不是,则默认情况下,Server 2012上的开始菜单位置是:
全部用户
(注意:您configuration的GPO是通过禁用此位置来工作的,但是,我将它留在这里以获取信息)
C:\ProgramData\Microsoft\Windows\Start Menu\Programs
特定用户
C:\users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
您可以通过组策略的用户首选项设置快捷方式( 您的组策略\用户configuration\首选项\快捷方式 )轻松完成。
阅读本分步指南: http : //www.morgantechspace.com/2014/12/Add-start-menu-shortcut-via-Group-Policy.html
如果要通过GPO将程序固定到“开始”菜单 ,则没有直接的“组策略首选项”设置将所有用户通过GPOlocking到“开始”菜单,但我们可以通过login脚本实现。
查看本指南: http : //www.morgantechspace.com/2014/05/How-to-Pin-a-Program-to-Start-menu-via-Group-Policy.html
我个人需要将networking共享中的项目添加到本地开始菜单中,现在所有的组策略都只添加用户特定的开始菜单项,并且不会保存在c:\ programdata \ microsoft \ windows \ start menu \ programs \我们的第三方启动栏只查看这个目录,所以通过单独的组策略将程序添加到eduSTAR栏是不可能的,因此需要额外的脚本和任务。
使用xcopy或robocopy抛出错误,并以pipe理员身份运行脚本仍然会给权限拒绝错误。
我的答案是创build一个“login”计划的任务运行任何可执行文件/脚本与pipe理权限。
对我来说,每天使用下面的代码从开始菜单中删除任何自定义安装的程序,这是不需要的,除非你想强制删除所有的开始菜单项:
mkdir c:\temp robocopy c:\programdata\microsoft\windows\start menu\programs c:\temp /e /MOVE /MINAGE:1 rmdir c:\temp /s /q
代码的下一部分从服务器共享位置复制到本地Windows开始菜单位置的快捷方式。
robocopy "\\server\netlogon\StartMenuShortcuts" "C:\programdata\microsoft\windows\start menu\programs" /is /e
现在,在服务器共享文件夹“StartMenuShortcuts”中的所有快捷方式都可以被命名为任何我刚刚命名它,以便于阅读,每次有人login它将删除当前在开始菜单中的所有快捷方式,并replace它们的快捷方式“StartMenuShortcuts”文件夹允许您执行和添加/删除任何您想要的内容,如果/ is参数已经位于该位置,则该参数将不会被复制,因为所有快捷方式都非常小,这对login性能几乎没有任何影响。
我也用这个方法来运行调用msi文件的vbs脚本,这些文件需要提供私有权限,当用户看到他们的桌面之前运行login脚本时,调度任务会更加强大(如果你想隐藏你的login脚本cmd窗口)
反正希望这有助于,我希望我多年前的工作,会救了我几个星期的工作。