在严格的网络管理环境中,最终用户的权限被限制得比较严格,被禁止随意改变系统的行为。在我们的网络环境中,学生是被禁止添加/删除QuickLaunch上的图标的,不仅如此,无线网络,打印机等等,都受到严格的权限控制,这些限制不仅是为了满足教育局的管理目标,同时也是为了能够保证电脑系统能提供持续的而一致的服务,并降低服务需求的措施之一。本文就是在这样的环境需求下书写的。

在系统部署的过程中,操作系统和软件等安装和基本配置可以被定制,之后还需要为用户环境进行定制,QuickLaunch的定制就是在实际工作中遇到的一个方面。通过查找资料,其实这个过程还是比较简单的。主要步骤是,在一台电脑上先定制好用户的图标,然后把Shortcuts目录和相关Registry复制下来,再把他们复制到Default用户目录中,这样每个新登陆用户就会自动拥有定制好的图标。

在现实中,还有两个问题,一是:对于已经有好多用户使用的电脑上,要部署QuickLaunch图标,需要或者把所有已经存在的本地用户目录删除,当下次登陆时,系统按照新用户处理,或者直接变更这些用户的图标。二是:在模板的基础上,如何把这个过程尽量的自动化一些。这个过程对于我本人来说是熟悉的,如何操作和以后的维护都好办。不过,在一个广域网络环境中,我们有200多所地处本市各地的学校,还有很多基层技术支持人员,他们会面对不同的学校需求,他们需要根据需求定制适合该学校软件环境和教师期望的电脑系统,虽然我们可以有文档辅助大家使用,甚至是培训,但是手动过程应该尽量减少,以减少各个技术人员的个人因素导致的额外问题。所以,定制模板并尽量自动化是一个需要考虑的技术问题。

下面,我们来看看我建议的实施过程,并包括所有的脚本/命令文件。

手动步骤:
1.备份定制

首先,找到一台试验机,最好是刚刚被重新镜像过的全新系统,所有的软件都已经安装完毕。使用一个至少可以定制QuickLaunch图标以及运行Regisrter的用户登录(最好是本地的 system administrator,后面解释原因),把使用的图标拖拽到QuickLaunch条上,并排列好顺序。然后备份该用户目录中的下列目录:

[html] view plaincopy
"%USERPROFLIE%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
之后使用RegEdit把下面的路径的注册表目录输出到一个文件中

[html] view plaincopy
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband

然后,为了可以方便地部署,需要修改注册表文件的一个部分,需要把HKEY_CURRENT_USER改变为可用的,我给他改为HKEY_USERS\TempHive,见图。其实不一定是TempHive,只要是一个前后使用相同名字的有效Registry键名即可。

1.测试

之后,登陆到本地系统管理员帐户,运行RegEdit程序,选择HKEY_USERS,在菜单中选择Load Hive,在文件打开窗中,选择一个用户的NTUSER.DAT文件,并给它一个名字,我们叫它TempHive。然后,在菜单中选择Import...,并选择刚才被修改了的Registry文件,并选择菜单Unload Hive,并保存。见下图:

如果看不见NTUSER.DAT需要在Folder Options中取消Hide protected operating system files(Recommended)。取消它之后,在Windows浏览器中,所有的文件都可见,比较令人烦,所以完成本操作后,最好重新选上。见下图:

把先前备份的那个TaskBar目录的所有文件都复制到该用户下面的对应目录中。

登陆到刚才修改了的该用户中,看看图标是不是都改过来了,如果修改的是Default用户,那么用一个新用户登录测试。

自动部署:
如果上面的测试结果有效,那么就可以使用下面的命令文件来自动化这个部署过程。

建立一个目录QuickLanuch_Win7,并建立子目录,Shortcuts和TempRegs。假定我们把TaskBar里的文件复制到Shortcuts中,把那个Registry文件复制到TemRegs中。再把下面的两个命令文件复制到QuickLaunch_Win7目录中。

下面的文件名是Install.cmd

[html] view plaincopy
ECHO OFF

:: ---------------------------------------------------------------------------------------
:: Add QuickLaunch icons for all users
:: History:
:: Initial: Oct 24, 2012 Tony Liu
::
:: Description: Install.cmd.
::
:: How TO:
:: Put all the program shortcuts in Shortcuts folders.
::
:: Copyright (c) 2012, Tony Liu'
::
:: This program is free software; you can redistribute it and/or
:: modify it under the terms of the GNU General Public License
:: as published by the Free Software Foundation; either version 2
:: of the License, or (at your option) any later version.
::
:: This program is distributed in the hope that it will be useful,
:: but WITHOUT ANY WARRANTY; without even the implied warranty of
:: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
:: GNU General Public License for more details.
::
:: You should have received a copy of the GNU General Public License
:: along with this program; if not, write to the Free Software
:: Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
::
:: Contact: Tonyliu2ca@gmail.com
:: ---------------------------------------------------------------------------------------

cd %~d0
cd %~d0%~p0

Echo ---------------------------------------------------------------------------- >> History.log
Echo : Add QuickLaunch icons for all users : >> History.log
Echo Start: %time%, %date% >> History.log
systeminfo | find "Host Name" >> History.log
Echo Windows Version: >> History.log
systeminfo | find "OS Name" | find "Windows 7" >> History.log
if %ERRORLEVEL% NEQ 0 goto End

for /F "delims=*" %%i in ('dir /A /B %SystemDrive%\Users') do @Putin.cmd "%%i" Shortcuts "History.log"

:End
Echo End: %time%, %date% >> History.log

下面的文件名是putin.cmd

[html] view plaincopy
echo off
:: ---------------------------------------------------------------------------------------
:: Process files in place for one user.
:: History:
:: Initial: Oct 24, 2012 Tony Liu
::
:: Description: Putin.cmd.
::
:: How TO:
:: Put all the program shortcuts in Shortcuts folders and import registry entry.
::
:: Copyright (c) 2012, Tony Liu'
::
:: This program is free software; you can redistribute it and/or
:: modify it under the terms of the GNU General Public License
:: as published by the Free Software Foundation; either version 2
:: of the License, or (at your option) any later version.
::
:: This program is distributed in the hope that it will be useful,
:: but WITHOUT ANY WARRANTY; without even the implied warranty of
:: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
:: GNU General Public License for more details.
::
:: You should have received a copy of the GNU General Public License
:: along with this program; if not, write to the Free Software
:: Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
::
:: Contact: Tonyliu2ca@gmail.com
:: ---------------------------------------------------------------------------------------

IF NOT Exist %~2 Exit /B 0

IF "%USERNAME%" == "%~1" (
Echo - %1 is Current user. >> %~3
) ELSE (
IF EXIST "%SystemDrive%\Users\%~1\NTUSER.DAT" (
IF EXIST "%SystemDrive%\Users\%~1\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar" (
Del /F "%SystemDrive%\Users\%~1\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\*.lnk"
xcopy %2\*.* "%SystemDrive%\Users\%~1\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\" /Y /I /E /R /H /Q /C

REG load HKU\TempHive "%SystemDrive%\Users\%~1\NTUSER.DAT"
:: for /F "delims=*" %%i in ('dir /A /B ^"%~d0%~p0TempRegs\*.reg^"') do echo ..."%~d0%~p0TempRegs\%%i"
for /F "delims=*" %%i in ('dir /A /B ^"%~d0%~p0TempRegs\*.reg^"') do REG import "%~d0%~p0TempRegs\\%%i"
REG unload HKU\TempHive
Echo - %1 is done. >> %~3
)
) ELSE (
Echo - %1 isn't a user. >> %~3
)
)

如果没有错误,在这个目录中运行Install.cmd就可以在任何一台Win7中为所有用户定制QuickLaunch图标了。

自动获取:

通过对自己系统的研究和经验,每个管理员对自己系统都有一个了解,什么是基本的配置,比如我们,MS Word和Internet Explorer是两个所有系统都必备常用的图标,那么我可以做一个基本图标的模板为他人以后添加新图标使用;也可以根据情况作一个最大图标的模板,这样其他人只要是根据自己的情况把无需的删除即可。总之,模板好办。

前面说了,不仅要有模板还有尽量避免人为错误,那么上面的人为错误最容易犯的就是定制图标之后的那些人工步骤,我们通过下面的命令文件和一个VBS脚本,就可以轻松解决了。

把下面的命令文件保存在QuickLaunch_Win7目录中,叫做Make.cmd

[html] view plaincopy
:: ---------------------------------------------------------------------------------------
::
:: Make.cmd for Quicklaunch Win7
::
:: Description:
:: After admin make quick launch icons done in current user, this cmd will copy all the nessary info
:: to correct folder to be ready for deployment.
:: This cmd must be run on the user who make all the icons ready and map to local drive if it is saved
:: on network share folder.
::
:: History:
:: Oct 25, 2012
::
:: Copyright (c) 2012, Tony Liu'
::
:: This program is free software; you can redistribute it and/or
:: modify it under the terms of the GNU General Public License
:: as published by the Free Software Foundation; either version 2
:: of the License, or (at your option) any later version.
::
:: This program is distributed in the hope that it will be useful,
:: but WITHOUT ANY WARRANTY; without even the implied warranty of
:: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
:: GNU General Public License for more details.
::
:: You should have received a copy of the GNU General Public License
:: along with this program; if not, write to the Free Software
:: Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
::
:: Contact: Tonyliu2ca@gmail.com
:: ---------------------------------------------------------------------------------------

%~d0
cd %~d0%~p0

del Shortcuts\*.*
del TempRegs\*.*

xcopy "%USERPROFLIE%\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\*.*" .\Shortcuts\ /Y /I /E /R /H /Q /C
reg export HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Taskband .\TempRegs\Taskband.reg /y

cscript Replace.vbs .\TempRegs\Taskband.reg "[HKEY_CURRENT_USER\" "[HKEY_USERS\TempHive\"

把下面的文件保存为Replace.vbs(这个VBScript是网上免费找到的)

[html] view plaincopy
Const ForReading = 1
Const ForWriting = 2

strFileName = Wscript.Arguments(0)
strOldText = Wscript.Arguments(1)
strNewText = Wscript.Arguments(2)

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strFileName, ForReading)
strText = objFile.ReadAll
objFile.Close

strNewText = Replace(strText, strOldText, strNewText)
Set objFile = objFSO.OpenTextFile(strFileName, ForWriting)
objFile.Write strNewText 'WriteLine adds extra CR/LF
objFile.Close

在其他技术人员定制完所有图标后,只要运行该Make.cmd,就可以完成上面手动的各个复制和修改步骤。

Tony L.

2012

Win7如何部署定制的Quicklaunch图标的更多相关文章

  1. Hadoop在win7下部署的问题

    问题: 为了测试方便所以在win7下部署了伪分布式hadoop运行环境,但是部署结束后在命令行运行hadoop命令创建一个用户文件目录时出现了一下情况: 系统找不到指定的批标签- make_comma ...

  2. Win7里面如何把这一堆图标放进那个右下角的小三角框框

    Win7里面如何把这一堆图标放进那个右下角的小三角框框.. Win7里面如何把这一堆图标放进那个小框框:1.在任务栏空白处右击,点击属性:2.在属性中的通知区域-->点击自定义按钮:3.去除勾选 ...

  3. 在Win7下新建库并修改图标

    win7中在库中添加桌面方法详解 1.在空白处,鼠标右键选择新建——库. 2.命名为桌面,然后选择桌面. 3.鼠标右键选择属性. 4.点击包括文件夹. 5.选择桌面,点击包括文件夹按钮. 6.点击确定 ...

  4. iOS 9应用开发教程之定制应用程序图标以及真机测试

    iOS 9应用开发教程之定制应用程序图标以及真机测试 定制ios9应用程序图标 在图1.12中可以看到应用程序的图标是网状白色图像,它是iOS模拟器上的应用程序默认的图标.这个图标是可以进行改变的.以 ...

  5. IIS7 + mysql + php + wordPress 在win7下部署

    最近在玩WordPress.wiki等开源平台的站点部署.通过一下实践和资料学习,为了以后少走弯路,觉得有必要把这个过程记录下来. 用到的东西: IIS服务: mysql; php; wordpres ...

  6. win7下Chrome有两个图标的解决方法

    摘抄自:http://www.sevenforums.com/browsers-mail/238406-windows-7-taskbar-creating-double-google-chrome- ...

  7. win7 IIS 部署-vs2012开发网站-全是问题啊。。。

    1.文件夹权限everyone2.aspnet_regiis.exe -i 表现为:

  8. Win7如何部署apache服务器(包括SSL设置)

    部署普通站点 1.首先下载apache24版本,下载地址为http://pan.baidu.com/s/1pLmvDgB; 2.解压到你的电脑本地目录,如D:\Apache24(下文配置都会以当前目录 ...

  9. Win7系统托盘解决出现CH图标的方法

    中文环境下,使用的英文键盘应该是“中文(简体)-美式键盘",这个输入法虽然是用来打英文的,但是归到中文类的,对应就是CH 如果因为某些不知明原因,增加了"美式键盘"等其他 ...

随机推荐

  1. 1、cmd中检测远程的ip和端口是否处于监听状态

    一.使用 ping 命令测试远程的ip是否可连通 cmd  (右键 管理员角色) ---  ping   IP 二.使用 telnet 测试远程某一个ip的端口是否开放 1.为了安全起见,window ...

  2. java程序中的多线程(转)

    为什么会排队等待? 下面的这个简单的 Java 程序完成四项不相关的任务.这样的程序有单个控制线程,控制在这四个任务之间线性地移动.此外,因为所需的资源 ― 打印机.磁盘.数据库和显示屏 -- 由于硬 ...

  3. RabbitMQ:从零开始

    目录 一.介绍 二.安装 三.基本配置 四.Java Demo 五.基础API使用 六.ACK机制 七.消息的持久化 八.消息的公平分发 九.消息的优先级 十.消息的路由分发 十一.Spring集成 ...

  4. set,get方法(属性,索引器)

    很多时候我们不可以把一些字段暴露出来允许别人调用和修改,为了隐藏这些字段又便于加限制的使用,在面向对象编程中一般采用写get set函数的办法,比如: //字段_age, "_"表 ...

  5. 关于nodejs+koa中的跨域问题与koa项目创建

    项目快速创建 -1. 安装koa-generator npm install -g koa-generator -2. 使用koa-generator生成koa2项目, koa2 test -3. 完 ...

  6. 基于mybatis-plus的代码生成

    基于mybatis-plus的代码生成 前言 随着敏捷开发模式的推广,伴着日益增长的需求,日常工作中我们越来越注重效率和便捷性.今天我们就来探讨下如何自动生成代码,准确地说是如何依赖数据库生成我们的e ...

  7. 汇编检测OD代码

    repnz指令说明:重复执行其后面的指令,CX或ECX存放最多比较次数,DI或EDI存放查找表首地址,AL或AX或EAX存放想查找的内容.当(CX或ECX)= 0 或 ZF=1 退出重复,否则,(CX ...

  8. linux centos6安装postgresql

    参考:https://blog.csdn.net/zhu_xun/article/details/21234663 参考:https://www.cnblogs.com/jimcsharp/p/857 ...

  9. 杂项:SVN -u

    ylbtech-杂项:SVN 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   7.返回顶部   8.返回顶部   9.返回顶部   10 ...

  10. 词表征 1:WordNet、0-1表征、共现矩阵、SVD

    原文地址:https://www.jianshu.com/p/c1e4f42b78d7 一.基于知识的表征 参见图1.1,WordNet中包含同义词集(synonym sets)和上位词(hypern ...