
现在在网吧内发生的治安事件非常多,安装监控设备以后,对预防和解决治安事件有很大帮助,所以目前很多大型网吧都安装有监控系统,但监控系统的安装复杂,而且投资很大,小型网吧一般很难承受,有没有好的办法既投入小、安装简单,又费用低廉呢?有,这就是使用USB的电脑摄像头来实现监控的目的,但使用USB电脑摄像头有几个问题需要解决,我们下面就分别一一给大家分析一下。
第一 传输距离
监控摄像头的安装,一般需要使用几米至几十米不等的传输距离,但按照USB的标准规定,USB设备的最长的传输距离是5米,所以USB都不能长距离使用,这就是我们使用USB摄像头做监控遇到的第一个问题,摄像头的传输距离。其实USB的传输距离也可以解决,USB可以通过USB HUB来延长传输距离,每增加一个HUB,就可以延长5米,一共可以增加5个HUB,也就是延长5次,每次5米,所以最长可以延长25米。为什么USB对距离的要求这么严格呢?这是因为USB的信号频率很高,线在传输信号的过程中对信号的衰减很大,当信号衰减到无法维持信号的正常传输的时候,WINDOWS就会提示“找到无法识别的USB设备”,所以一般距离都不能超过5米!。另外USB 2.0比USB 1.1对距离更敏感,传输距离很难超过2米。
经过我们的多次认真测试得出如下结论,①如果使用USB2.0的摄像头,那么只能使用USB2.0的带信号放大的延长线来增加传输距离,这种线其实就是一个带芯片的USB 2.0 HUB,每根线5米长,能够被延长5次,最远能够传输25米。USB 2.0的摄像头最好不要使用不带芯片的延长线,这种延长线只适合于鼠标、键盘等低速设备,不适合于摄像头之类USB 2.0的高速设备,既使是使用2米的延长线,也会让USB 2.0的设备工作不正常或是不稳定。② 如果使用USB 1.1的摄像头,可以使用支持USB 的高速延长线,也可以使用USB 1.1的带信号放大的延长线。支持USB 的高速延长线在USB 1.1上使用,最远可以达到10米,USB 的高速延长线虽然对USB 1.1的设备支持非常好,但USB 2.0的高速设备在这种线上使用也不会超过2米,所以USB 的高速延长线只能用在USB 1.1上,而不能使用在USB 2.0的高速设备上。另外提醒大家,我们在使用中发现USB 1.1的摄像头使用USB 2.0的带信号放大的延长线,偶尔会出现画面抖动的情况,所以不建议大家在USB 1.1的摄像头上使用USB 2.0的带信号放大的延长线。
第二 带宽
USB 1.1的带宽是12M,1只电脑摄像头在320X200分辨率,30帧/秒的情况下,需要使用的带宽大约是8M,USB 1.1的这个带宽对于只安装一个监控摄像头的网吧来说是够了,但对需要安装多路摄像头或是需要更好分辨率的网吧来说还不够,为了获得更大的带宽就需要使用支持USB 2.0的电脑,USB 2.0的带宽是480M,对于一般网吧来说,满足4路监控的要求是足够了。支持USB 2.0的主板一般需要Intel 865以上芯片组或是VIA KT333以上的芯片组,如果你的主板不支持USB 2.0,只需要购买1块NEC 的USB 2.0扩展卡就可以了,这种卡一般不贵,只需要50元左右。另外要提醒大家,如果要使用多路摄像头,最好是每只摄像头都分别接到主板的1个USB端口上。如果只接1个主板的USB 2.0端口,通过USB 2.0的HUB分线出来分别接摄像头使用的话,主板和HUB 2.0 HUB之间最好不要有延长线,如果距离太远需要延长的话,也只能使用USB 2.0的带信号放大的延长线来延长。如果只需要1路监控的话,那么使用USB 1.1的接口也是可以的!为了使用USB 2.0,还需要打上USB 2.0的补丁。
第三 摄像头效果
①监控用的摄像头,一般都要求清晰度高,因为目前电脑摄像头普遍使用的感光芯片是美光或现代的感光芯片,这2种芯片的摄像头,清晰度都差不多,如果使用5玻镜头的话,对于要求不太严格的网吧一般都能够满足基本要求,而且每秒30帧的速度也基本能够满足监控的需求。如果需要更好清晰度的话,可以使用物理动态130万的摄像头(不是网上乱说的130万的,需要强调的是感光芯片和接口芯片都支持物理动态130万的摄像头,才能真正算是130万的),这种摄像头一般成像效果要好于采用镁光和现代感光芯片的摄像头,能够获得比一般物理35万摄像头更好的效果,但带宽占用及CPU占用率都很高,一般不推荐使用!
②如果网吧内光线比较暗,就需要使用夜视效果好的摄像头,但因为目前镁光和现代的感光芯片的夜视效果都不是很好!目前市场上还有少量的使用7131E芯片的摄像头,这种感光芯片比镁光和现代的感光芯片大很多,所以夜视效果好很多,如果能用这种芯片的摄像头是最好的!没有的话就只有使用红外线的摄像头,这种摄像头在光线充足的情况下,是彩色的,在光线暗的情况下,就会发出红外线,并变为黑白方式工作,这样的话,即使在没有灯光的情况下,依然能够获得比较好的成像效果,只是图象会变成黑白的,但满足一般监控用途还是勉强可用的,但用户需要根据自己的网吧的环境选择自动感应或是手控灯光的摄像头!
③熟悉照相机的朋友都知道,镜头根据视角的不同,有广角镜头和长焦镜头之分,视角大的镜头,也叫广角镜头,拍摄的距离不远但拍摄的范围可以很大。视角小的镜头也叫长焦镜头,可以拍摄得远,但拍摄范围不大。因为目前电脑摄像头广泛使用的是固定视角的摄像头,而监控的范围有的需要大范围,有的需要远距离,这种情况下,只有通过更换不同视角的镜头来解决。所以我们准备了不同视角的5玻镜头,方便大家更换使用
下面4张图片中,左上角的是110度视角的5玻镜头、右上是80度视角的5玻镜头,左下是40度视角的5玻镜头,右下角是60度的2玻镜头
第四 监控软件
微服USB摄像头监控安防直播系统
下载地址:http://www.likeim.com/ac/setup.rar
使用说明:http://www.altykj.com/_d268721643.htm
一般电脑摄像头都带有录象软件,但附带的软件功能很少,而且只能使用AVI的文件方式保存,这种保存方式非常占空间,一般1分钟就需要几百兆的空间,所以如果要使用电脑摄像头来监控,就必须使用专业的监控软件。目前我们电脑摄像头的监控软件就很好,我们做实验用的C4 1.7G的芯片,在开4路监控的时候,开4路监控只有70%-80%的占用!
下面我们介绍具体安装例子,1个网吧,2间房间,每间50个平方,每个房间安排2只摄像头,总计4只摄像头,使用USB 1.1 35万的红外线摄像头,主机使用CD 325 865主板 512M内存 40G硬盘

雨林木风万能驱动包 5.0 Build 0713 封装系统 含驱动程序选择工具
雨林木风最新系统所用的系统补充驱动包,含驱动程序选择工具,并具有智能判断设备驱动解压安装功能。
所用驱动大部分为 WHQL 认证,包含 02 年至今常见硬件设备驱动。
驱动更新说明:
1、加入 ITE、Jmicron 的 IDE、Raid 主板驱动
2、更新 Intel、nVIDIA、VIA 等显卡驱动
3、更新 Analog、Conexant、Realtek 等 HD 声卡驱动以及 HDMI 驱动
4、加入 nForce MCP 系列网卡驱动
5、更新笔记本 TMP 驱动,加入常见的蓝牙、红外接收器、指纹识别设备驱动
6、更新 Intel、Realtek 无线网卡驱动
驱动程序选择工具更新说明:
1、增加多显卡判断
2、解决部分笔记本在驱动判断时蓝屏的问题

1.设置显示属性
桌面空白处点右键——属性——设置:屏幕分辨率(多数是1024x768像素,根据你的显示器选择),再点高级——监视器:屏幕刷新频率(选75赫兹或85赫兹均可),再点确定。
2.右键点击任务栏中的输入法图标——设置,删除你不常用的输入法。请保留微软拼音输入法,有时候会 方便一些。这里并没有真正删除输入法。
打开开始菜单,通过右键点击选择某些项目在桌面显示,以方便你的使用。
3.设置开始菜单显示的内容
右键点击开始——属性——自定义:选择小图标,去掉电子邮件前面的钩号,再点高级,选择你需要显示和不需要显示的内容。点击确定。
4.删除快速启动栏内不常用的图标,右键点击你不需要的图标,选择删除就可以了。
5.删除你多余的桌面图标。因为程序的关联关系,有很多程序你根本不需要在桌面上启动它。
6.隐藏托盘内的音量图标
当然,隐藏前你最好将音量调到最大,隐藏后音量调节可以通过耳机、音箱或者播放器的音量控制开关来调整。具体步骤是:
开始菜单——控制面板——声音、语音和音频设备——声音和音频设备,选择音量选卡,去掉将音量图标放入任务栏前面的钩号。再点确定即可。
7.如果你经常用耳机,这个设置你是需要的
开始菜单——控制面板——声音、语音和音频设备——声音和音频设备,选择音量选卡,在设备音量栏内点高级,CD唱机栏的下方选择静音,打上一个钩号。这样就可去除耳机内时有时无的莫名其妙的杂音。接着点击扬声器设置栏内的高级按钮,选择扬声器选卡,在下面的扬声器设置下拉菜单中选择立体声耳机。连续点击确定。
8.如果你的声卡支持音效管理,我们还可以进行如下设置
开始菜单——控制面板——声音、语音和音频设备——音效管理员,在均衡器选卡的开启前打上钩号,
你还可以调整各波段的分贝值。如果你用的是耳机,在喇叭组态选卡请选择耳机。在麦克风效果选卡
的噪音抑制前打上钩号。再点确定。
9.如果你安装了Neospeech Text-To-Speech 16K Paul 语音转换程序,可别忘了如下设置
开始菜单——控制面板——声音、语音和音频设备——语音,在语音选择中选择你所安装的语音,预听一下,是不是比操作系统自带的清晰得多。当然你的金山词霸也要进行类似的设置。
10.打开IE浏览器,在Internet选项中设置主页,设置网页保存在历史记录中的天数(我设置为2)。
11.给右键增加用记事本功能
复制以下内容,粘贴到记事本,保存为“用记事本打开.reg”,然后双击“用记事本打开.reg”,加入注册表,这个功能有时候用起来非常方便:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\\*\\shell\\Notepad]
@=\"用记事本打开\"
[HKEY_CLASSES_ROOT\\*\\shell\\Notepad\\command]
@=hex(2):6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,20,00,25,00,31,00,00,00
12.提升网速
a.增大TCP/IP并发连接数值(我已改为1024)。可以用PPStream网络电视播放器下载的XP SP2补丁xpsp2.exe或者YlmF优化工具DIY1.6进行修改。
b.用“提速十倍”进行网络优化。
13.恶意插件免疫
网上有很多工具软件都能设置插件免疫。
14.用恶意软件清理助手(也可用其它类似软件)清除恶意软件。
15.关闭\"休眠\",这功能占用太多空间。
桌面空白处点右键——属性——屏幕保护程序——电源——休眠,去掉启用休眠前面的钩。
16.关了系统还原
右键点击我的电脑——属性——系统还原——选中“在所有驱动器上关闭系统还原”
17.视觉效果只选3项:
我的电脑属性——高级——(性能)设置——视觉效果:a.在窗口和按钮上使用视觉样式;b.在文件夹中使用常见任务;c.在桌面上为图标标签使用阴影。其它一律不选。
18.启动和故障恢复设置:
我的电脑属性——高级——(启动和故障恢复)设置,显示操作系统列表的时间,设为1秒或2秒均可,系统失败栏内的3项(将事件写入系统日志、发送管理警报、自动重新启动)前面的钩号去掉,“写入调试信息”选择“无”,再点确定即可。当然你也可以保留“将事件写入系统日志”前面的钩号,以后出现问题你可以轻松地通过这个东西了解问题的出处,很具有参考作用,推荐给具有一定水平的朋友。
19.禁用错误报告
我的电脑属性——高级——错误报告,选择“禁用错误报告”。
20.设置虚拟内存
我的电脑属性——高级——(性能)设置——高级——(虚拟内存)更改——自定义大小,“初始大小”和“最大值”设为一样大,一般用户设为500左右就可以了,我设置的是588。
21.禁用闲置的IDE通道:
出于某些原因,Windows XP有时会在IDE通道上使用PIO并行输入输出传输模式,而不是DMA模式。如果有这种情况,用户可以手动把IDE通道改为DMA模式 这样可以减少该设备占用的CPU周期。打开设备管理器(右键点击我的电脑,选属性,点选硬件选项卡,点击“设备管理器”打开),然后点击展开“IDE ATA/ATAPI 控制器”分支,双击“次要 IDE 通道”,点击高级设置。 检查“传输模式”下拉菜单,把它设为“DMA (若可用)”(允许情况下使用DMA),如果有设备的当前传输模式为“不适用”,则将该设备的“设备类型”设为“无”,点击确定。把闲置的通道关闭,对于ICH5/6南桥,Nforce的系统会提高启动速度,比较明显, 尤其是后者。再用同样的方式修改每一个IDE控制器。
22.关闭Dr.Watson:
在“开始”——“运行”中输入“drwtsn32”命令,调出系统里的Dr.Watson ,只保留“转储全部线程上下文”选项,否则一旦程序出错,硬盘会读很久,并占用大量空间。如以前有此情况,请查找user.dmp文件,删除后可节省几十MB空间 。然后打开注册表,找到 HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\AeDebug子键分支,双击在它下面的Auto键值名称,将其“数值数据”改为0,最后按F5刷新使设置生效,这样就彻底来取消它的运行了。
23.开启小键盘数字键:
开始——运行——regedit——HKEY_USERS——.Default——Control Panel——Keyboard:将数值名称InitialKeyboardIndicators资料值更改为2
24.自动释放系统资源
在Windows中每运行一个程序,系统资源就会减少。有的程序会消耗大量的系统资源,即使把程序关闭,在内存中还是有一些没用的DLL文件在运行,这样就使得系统的运行速度下降。不过我们可以通过修改注册表键值的方法,使关闭软件后自动清除内存中没用的DLL文件及时收回消耗的系统资源。打开注册表编辑器(开始——运行——regedit),找到 “HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\explorer”主键,在右边窗口单击右键,新建一个名为“AlwaysUnloadDll”的“DWORD值”,然后将“AlwaysUnloadDll”的键值修改为“1”,退出注册表重新启动机器即可达到目的。
25.为IRQ中断请求排优先次序
计算机的每一个主要部件都设了个IRQ中断号。这里就是要通过修改每个IRQ请求的优先次序达到优化目的。这里主要的优化对象是系统CMOS/实时时钟(System CMOS/real time clock),它通过主板来提升性能。右键点击“我的电脑”,选择“属性”,选中\"硬件\"选项卡,然后点击\"设备管理器\"按钮, 点击“系统设备”,右键点击“System CMOS/real time clock”,选择\"属性\",然后点击\"资源\"选项卡。这里可以看到设备正在使用的IRQ中断号(如果没有IRQ中断号,选择另一个设备)。把中断号记下来,然后运行注册表编辑器regedit,找到注册表中的 HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\PriorityControl 位置。我们要在这里建立一个名为IRQ#Priority(其中\"#\"是具体的IRQ中断号)的DWORD双字节值,然后把它的值设为1。譬如说,我的系统CMOS实时钟的IRQ中断号是8,我要建立的键名就是IRQ8Priority。重新启动计算机之后,就会发现刚优化过的组件性能有所提高。笔者强烈建议用这个方法优化系统CMOS实时钟,因为它能改善整块主板的性能。当然也可以把多个IRQ中断号优先级提高,但这样做的效果没那么好,而且有可能造成系统不稳定。要把这个优化设置撤消的话,只要把刚才建立的注册表键值删掉就OK了。
26.快速浏览局域网络的共享(一般用户不需要。有的操作系统不存在这个问题,比如我上面提到的三个操作系统,根本就不需要这一步设置)通常情况下XP在连接其它计算机时,会全面检查对方机子上所有预定的任务,这个检查会让你等上30 秒钟或更多时间。去掉的方法是:开始——运行——Regedit——在注册表中找到HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\RemoteComputer\\NameSpace。在此键值下,会有个{D6277990-4C6A-11CF-8D87-00AA0060F5BF}键,把它删掉后,重新启动计算机,Windows XP就不再检查预定任务了,速度明显提高!
27.加快右键菜单显示速度
修改注册表里面HKEY_CURRENT_USER\\ControlPanel\\desktop的字符串MenuShowDelay的值为200或更小的数值
28.禁用对.ZIP文件的支持
这是一个相当好的优化,Windows XP内置了对.ZIP文件的支持,我们可以把zip文件当成文件夹浏览。不过,系统要使用部分资源来实现这一功能,因此禁用这一功能可以提升系统性能。实现方法非常简单,只需取消zipfldr.dll的注册就可以了,点击开始--运行,键入: regsvr32 /u zipfldr.dll 。然后回车即可。
29.优化你的鼠标(对机械式鼠标效果明显,光机式鼠标作用不大)
开始菜单——控制面板——打印机和其它硬件——鼠标——硬件——属性——高级设置,在这里将“采样速率”调整为最大值(我的最大值是200报告/秒),它能够提高您鼠标的分辨率,效果会更好。如果您的鼠标属于没有滚轮的那一种,就将“鼠标轮检测”改为“检测被停用”,否则就选“假设鼠标 轮已经存在”。如果您的鼠标在使用过程中没有任何问题,就不要取消对“快速初始化”的选择。这样的设置之后,感觉一下你的右手,爽到了极点!
30.让系统时间显示星期
开始菜单——控制面板——日期、时间、语言和区域设置——更改数字、日期和时间的格式——区域选项——自定义——日期,在最下面的“长日期格式”后面加上字母 dddd,最后,点击“确定”按钮退回到控制面板。此时再将鼠标悬停到时钟上时,您便会惊喜地发现,此时的系统时钟已经可以提示当天的星期了。
31.清理墙纸
在C:\\Windows和C:\\WINDOWS\\Web\\wallpaper里面,找到你不需要的墙纸并删除。
32.一般大家安装系统更新后,你还会发现系统目录(C:\\WINDOWS)里面多了许多类似$NtUninstallQ311889$这样的目录,都是更新的反安装文件(没有人会卸载更新吧),可以放心地删除。
小提示:本步骤你需要进行如下设置后方能看见你想删除的内容。
我的电脑——工具——文件夹选项——查看,去掉“隐藏受保护的操作系统文件”前面的钩号,选中“显示所有文件和文件夹”,再点击确定。
33.对杀毒软件进行适当的设置
不同的杀毒软件有不同的设置方法,可在网上看一看别人的设置介绍。
34.善用Windows优化大师(当然,不用Windows优化大师你也可以用其它方法达到同样的效果。)
a.Windows优化大师——系统优化——开机速度优化,只需保留杀毒软件、输入法支持(ctfmon.exe)和一个你常用的输入法,其他的统统去掉。比如我的就剩下kav(卡巴斯基)、ctfmon.exe、jiajiabx(拼音加加便携版)。
b.Windows优化大师——系统优化——系统个性设置,选中“消除快捷方式图标上的小箭头”和“禁止添加‘快捷方式’文字”,在此你还可以设置输入法顺序。
c.Windows优化大师——系统优化——后台服务优化,具体优化方案请见下面的“服务优化”。
小提示:其它优化,特别是“网络系统优化”,最好不要用,否则会有影响的。
d.Windows优化大师——系统清理——注册信息清理,选中所有选项进行清理。
e.Windows优化大师——系统清理——磁盘文件管理,选中所有选项,清除垃圾。当然你还可以选择“冗余DLL清理”、“历史痕迹清理”等。
35.善用RegVac(注册表吸尘器)
RegVac——转到专家模式——自动扫描,选中所有选项,然后点击“运行上面选中的自动扫描”
服务优化:
1、.NET Runtime Optimization Service v2.0.50727_X86=手动。进程名mscorsvw.exe。无依存关系。
Microsoft.NET Framework相关服务。默认启动类型为手动。建议设为手动。
2、Adobe LM Service=手动。进程名Adobelmsvc.exe。无依存关系。
Adobe Photoshop相关服务。默认启动类型为手动。
3、Alerter=禁用。进程名svchost.exe。依赖Workstation服务。
Alerter,警示器。默认启动类型为禁用。Alerter服务的功能是,WinXP将系统上发生的与管理有关的事件以警示,(Alert)信息传送至网络上指定的电脑或用户。不需要,设为禁用。
4、Application Layer Gateway Service=禁用。进程名alg.exe。无依存关系。
ALG,应用层网关服务。默认启动类型为手动。为Internet连接共享和Windows防火墙提供第三方协议插件的支持。若需要,可设为手动。一般用户用不到,建议设为禁用。
5、Application Management=手动。进程名svchost.exe。无依存关系。
AppMgmt,应用程序管理服务。默认启动类型为手动。它不仅管理软件的安装、删除,而且可使用此项服务修改、修复现有应用程序,监视文件复原并通过复原排除基本故障等。建议设为手动。
6、ASP.NET State Service=手动。进程名aspnet_state.exe。无依存关系。
Microsoft.NET Framework网络框架相关服务。默认启动类型为手动。建议设为手动。
7、Automatic Updates=禁用。进程名svchost.exe。无依存关系。
Wuauserv,自动更新服务。默认启动类型为自动。建议设为禁用。
8、Background Intelligent Transfer Service=禁用。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
BITS,后台智能传输服务。默认启动类型为手动。当网络切断或计算机需重启时,后台智能传输服务会自动对文件传输加以维护,当网络重新连接时,后台智能传输服务将继续从停止的地方继续开始传输文件。基本上它的应用也就是支持Windows自动更新时的断点续传。如果你禁用了Automatic Updates,留着它基本上也没有什么意义。 建议设为禁用。
9、ClipBook=禁用或手动。进程名clipsrv.exe。依赖Network DDE、Network DDE DSDM服务。
ClipSrv,剪贴板查看器服务。默认启动类型为手动。ClipBook通过Network DDE和Network DDE DSDM提供的网络动态数据交换服务,可查阅远程机器中的剪贴板,通俗的说就是ClipBook支持剪贴板查看器(ClipBook Viewer)程序,该程序可允许剪贴页被远程计算机上的ClipBook浏览。不准备使用或极少使用远程桌面的用户,这个服务完全可以禁用。建议设为禁用。
10、COM+ Event System=手动。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
EventSystem,COM+事件系统服务。默认启动类型为手动。简单的说COM+是一种软件构件/组件的标准。检查你的系统安装盘下的\"Program files\\ComPlus Applications \" 目录,如果没有东西就可以把这个服务关闭了。建议设为手动。
11、COM+ System Application=手动。进程名dllhost.exe。依赖Remote Procedure Call(RPC)服务。
COMSysApp,COM+系统应用服务。默认启动类型为手动。简单的说,COM+ System Application是COM+ Event System的具体执行者,如果禁用了COM+ Event System也就自然禁用它。建议设为手动。
12、Computer Browser=禁用或自动。进程名svchost.exe。依赖Server、Workstation服务。
Browser,计算机浏览器服务。默认启动类型为自动。Browser服务维护着一个网络资源的清单,其中包括基于Windows的域、工作组和计算机,还有其他支持NetBIOS协议的网络设备,我们在\"网上邻居\"上看到显示的内容正是来源于此。显然对于一般家庭用的计算机这个服务并不需要,除非计算机位于局域网之上,例如用长城宽带的朋友,用它可方便地知道社区内的网络环境。一般用户建议设为禁用。
13、Cryptographic Services=手动。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务
CryptSvc,认证服务。默认启动类型为自动。如果我们在WinXP中使用Automatic Updates自动更新,或在Internet上使用证书进行身份验证以及正确管理这些证书等,那么这个服务就不要关闭。其中这个功能最有用的是,当你安装一个驱动程序时,以确定它是不是通过微软认证的。建议设为手动。
14、DCOM Server Process Launcher=自动。进程名svchost。无依存关系。
DcomLaunch,默认启动类型为自动。关闭这个服务会造成很多手动服务无法在需要的时候自动启动 ,一些软件无法正常安装,还有些打印机的驱动无法安装,都会出现错误提示。要求设为自动。
15、DHCP Client=禁用或自动。进程名svchost.exe。依赖AFD、NetBios over Tcpip、TCP/IP Protocol Driver、IPSEC driver服务。
Dhcp,动态主机配置协议客户端服务。默认启动类型为自动。简单的说DHCP过程就是由网络中一台主机(DHCP Server)将所有的网络参数自动分配给网络内的任何一台计算机,而DHCP Client就是网络中被分配网络参数的对象计算机了。如果要在网络中被自动分配IP地址等网络参数,那么这个DHCP Client服务就必不可少。如果你手动设置了IP地址,这个服务可以禁用。建议设为禁用。
16、Distributed Link Tracking Client=禁用。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
TrkWks,分布式连结追踪客户端服务。默认启动类型为自动。简单说,就是将整个网络中分散于各台计算机上互相有连接的NTFS文件看作一个整体,当系统内发生文件移动,就会记录这个信息。它是针对\"域用户\"的\"NTFS文件\"的\"分布式连接\",这3个条件缺一个你就用不上它,对于不在局域网的单机用户来说,当然是禁用它。一般用户不需要,建议设为禁用。
17、Distributed Transaction Coordinator=禁用或手动。进程名msdtc.exe。依赖Remote Procedure Call(RPC)、Security Accounts Manager服务。
MSDTC,分布式交易协调器。默认启动类型为手动。主要用来处理分布式交易,所谓分布式交易,就是跨越两个或多个数据库的单一SQL Server内部的交易。同一数据库内不同数据表间的交易,则不能称作分布式交易。显然对于需要同时处理多个数据库或文件系统的用户来说,这个服务意义重大,但它也是通常意义上一般用户不会使用到的服务,其实这个服务也容易受到远程拒绝服务攻击。建议设为禁用。
18、DNS Client=自动。进程名svchost.exe。依赖TCP/IP Protocol Driver、IPSEC drive服务。
Dnscache,DNS客户端服务。默认启动类型为自动。为了要达到用最快速、最有效率的方式,让客户端能够迅速找到网域的验证服务,在Win2000/XP系统中,加入了DNS快取(Cache)的功能,当第一次在找到了目的主机的IP地址后,操作系统就会将所查询到的名称及IP地址记录在本机的DNS快取缓冲区中,下次客户端还需要再查询时,就不需要到DNS服务器上查询,而直接使用本机DNS Cache中的数据即可。建议设为自动。
19、Error Reporting Service=禁用。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
ERSvc,错误报告服务。默认启动类型为自动。当使用程序出错时会跳出对话框,问你是否需要向微软发送报告,就是这个服务的功能。此服务完全可设置为手动或禁止。建议设为禁用。
20、Event Log=自动。进程名services.exe。无依存关系。
Eventlog,系统日志纪录服务。默认启动类型为自动。Event Log服务负责记录来自系统和运行中程序的管理事件消息,为Windows和应用程序提供了一个标准而集中的方法来记录重要的软件和硬件事件。打开事件查看器的方法是依次打开\"开始→控制面板\",然后选择打开\"管理工具→事件查看器\"。这个服务是基础服务,无法调整关闭。要求设为自动。
21、Fast User Switching Compatibility=禁用或手动。进程名svchost.exe。依赖Terminal Services、Remote Procedure Call(RPC)服务。
FastUserSwitchingCompatibility,多用户快速切换服务。默认启动类型为手动。即快速的多用户切换环境。建议设为禁用。
22、Help and Support=手动。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
Helpsvc,帮助服务。默认启动类型为自动。这个服务用于支持WinXP帮助和支持中心的功能,如果你刚开始使用WinXP,这个帮助中心能解决不少问题,如果你觉得不需要它了,那就禁用吧。建议设为手动。
23、HTTP SSL=手动。进程名svchost.exe。依赖HTTP服务。
HTTPFilter,默认启动类型为手动。此服务通过安全套接字层(SSL)实现 HTTP 服务的安全超文本传送协议(HTTPS)。建议设为手动。
24、Human Interface Device Access=禁用。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
HidServ,人性化接口装置服务。默认启动类型为禁用。这个服务简单说就是支持那些所谓的带有多媒体功能智能键盘,比如音量调节。当然你有符合人体工程学标准的设备(主要指键盘和鼠标),那么这个服务就设置为自动,否则这些设备的一些功能将不能正常使用。而如果你没有这类设备或者你的设备有自己的驱动,即可禁用此服务。建议设为禁用。
25、IMAPI CD-Burning COM Service=禁用。进程名imapi.exe。无依存关系。
ImapiService,IMAPI CD刻录服务。默认启动类型为手动。这个就是WinXP内置的CD刻录服务了,总的来说该服务的功能和性能十分有限,有刻录机的朋友还是安装成熟的第三方刻录软件,关闭这个服务吧。建议设为禁用。
26、Indexing Service=手动。进程名cisvc.exe。依赖Remote Procedure Call(RPC)服务。
Cisvc,索引服务。默认启动类型为手动。这个服务可为本地和远程计算机上的文件编制索引,也就是说像图书馆里为图书编制的查询索引一样,这样可加快寻找文件的速度。但此服务启用后某此情况会导致系统极度繁忙,通过任务管理器,可看见Cidaemon.exe这个进程占用了大部分CPU资源。因此对待这个不成熟的服务,建议设为手动。
27、IPSEC Services=禁用。进程名lsass.exe。依赖IPSEC driver、Remote Procedure Call(RPC)、TCP/IP Protocol Driver服务。
PolicyAgent,IP安全策略服务。默认启动类型为自动。IPSEC是一种用来保护内部网、专用网络以及外部网(Internet、Extranet)免遭攻击的重要防御方法。对于绝大多数用户来说,这是个根本就不用关心的东西。建议设为禁用。
28、Logical Disk Manager=手动。进程名svchost.exe。依赖Plug and Play、Remote Procedure Call(RPC)服务。
Dmserver,逻辑磁盘管理员服务。默认启动类型为自动。用来动态管理磁盘,如显示磁盘可用空间和使用Microsoft Management Console(MMC)主控台中的磁盘管理功能。这个服务对于经常使用移动硬盘、U盘等外设的朋友来说必不可少。建议设为手动。
29、Logical Disk Manager Administrative Service=手动。进程名dmadmin.exe。依赖Logical Disk Manager、Plug and Play 、Remote Procedure Call(RPC)服务。
Dmadmin,逻辑磁盘管理系统管理服务。默认启动类型为自动。主要用来配置硬盘信息,平时基本上没用。打开“计算机管理”(Microsoft Management Console,简称MMC)时,你可以看到“磁盘管理”,这时就会用上它。建议设为设为手动。
30、Messenger=禁用。进程名svchost.exe。依赖NetBIOS Interface、Plug and Play、Remote Procedure Call(RPC)、Workstation 服务。
Messenger,信使服务。默认启动类型为自动。如果是在同一域中,只需要用NET SEND命令就可以轻易发送消息了。\"信使服务\"不仅会干扰工作,影响心情,而且还容易遭到\"社会工程\"攻击,所以禁用它吧。建议设为禁用。
31、Microsoft Office Diagnostics Service=手动。进程名ODSERV.EXE。无依存关系。
Microsoft Office诊断服务。默认启动类型为手动。建议设为手动。
32、MS Software Shadow Copy Provider=禁用。进程名dllhost.exe。依赖Remote Procedure Call(RPC)服务。
SwPrv,管理磁盘区卷影复制服务。默认启动类型为手动。这个服务是为WinXP中的MS Backup备份程序提供支持。一般用户不需要,建议设为禁用。
33、Net Logon=禁用或自动。进程名lsass.exe。依赖Workstation服务。
Netlogon,网域登录服务。默认启动类型为自动。这个服务是用来做网域审查的。当你的计算机处在一个域网内时,如果要使用网内的域服务器登录到域网时,就要通过它来登录了。一般用户用不着,建议设为禁用。
34、NetMeeting Remote Desktop Sharing=禁用或手动。进程名mnmsrvc.exe。无依存关系。
Mnmsrvc,NetMeeting远程桌面共享服务。默认启动类型为手动。使用NetMeeting可透过公司内部网络,让使用者将计算机的控制权分享给局域网上或因特网上的其他使用者,很多人都因为安全问题关掉它,而且它很占网络资源。但如果你想和别人做些非文字的交流,还是比较好玩的。注意关掉它后,远程桌面共享功能将无法使用。建议设为禁用。
35、Network Connections=自动。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
Netman,网络连接服务。默认启动类型为手动。也是非常重要的基础服务,它管理着\"网络和拨号连接\"文件夹中的所有对象,任何有关于网络上(局域网、Internet)的连接都需要这个服务。如果被禁用,在\"网络和拨号连接\"文件夹中将什么都看不到,更不用说新建连接和拨号上网了。因此除非你的机器是绝对的单机环境,才可将其关闭。要求设为自动。
36、Network DDE=禁用或手动。进程名netdde.exe。依赖Network DDE DSDM服务。
NetDDE,网络动态数据交换服务。默认启动类型为手动。是微软早期设计的一种方法,可让应用程序在不同PC上的Windows之间交换动态数据,现在已经很少使用。实际上在WinXP中,真正使用它的只有ClipBook服务。数据共享服务通常是经过可信赖的沟通渠道,负责管理这项服务的是网络DDE代理(Network DDE Agent),实际上网络DDE代理会使机器非常容易遭受攻击而失去本机的管理员控制权。因此如果无需ClipBook共享这个特殊服务,不妨禁用。建议设为禁用。
37、Network DDE DSDM=禁用或手动。进程名netdde.exe。无依存关系。
NetDDEdsdm,网络动态数据交换网络共享服务。默认启动类型为手动。它不依赖于其他服务。如果此服务终止,Network DDE服务将不可用,实际上如果不用Network DDE,那么Network DDE DSDM也禁用好了。建议设为禁用。
38、Network Location Awareness (NLA)=禁用。进程名svchost.exe。依赖AFD、TCP/IP Protocol Driver、IPSEC Driver服务。
NLA,网络位置识别服务。默认启动类型为手动。NLA可以探测网络系统的相关信息,当这些信息发生变化时通知相关的应用程序。基本上,这个服务主要针对的对象是笔记本电脑。对于经常移动办公的人,这确实是个不错的功能。一般用户用不到,建议设为禁用。
39、Network Provisioning Service=禁用或手动。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
xmlprov,默认启动类型为手动。为自动网络提供管理基于域的 XML 配置文件。一般用户用不到,建议设为禁用。
40、NT LM Security Support Provider=禁用。进程名lsass.exe。无依存关系。
NtLmSsp,NT LM安全性支持提供者服务。默认启动类型为手动。是NT下提供的认证方法之一,使用了64位的加密手段。NtLmSsp这个服务主要针对RPC(远程过程调用),通常RPC可以选择基于两种通信方式,一种是传输协议,比如TCP/IP、UDP、IPX等,另一种为命名管道(Pipeline)。通常情况下Windows默认选择都是传输协议,而由于RPC是采用非加密传输的,通信数据安全无法得到保证,而NtLmSsp就可向这一类RPC提供安全服务。WinXP中已知的这类RPC应用就是Telnet服务(Telnet也依赖于NtLmSsp),因此无需Telnet服务的单机用户可将其关闭。一般用户用不到,建议设为禁用。
41、Office Source Engine=手动。进程名OSE.EXE。无依存关系。
Ose,默认启动类型为手动。保存用于更新和修复的安装文件,并且在下载安装程序更新和错误报告时必须使用。建议设为手动。
42、Performance Logs and Alerts=手动。进程名smlogsvc.exe。无依存关系。
SysmonLog,效能记录日志及警示服务。默认启动类型为手动。如果打开控制面板的管理工具,可以看到有\"性能\"这个工具,它较详细地反映了系统的性能,但配置起来相当复杂,不好上手,而且大多数人也会认为这个性能工具没什么意义。 SysmonLog就是为它提供日志记录的服务。建议设为手动。
43、Plug and Play=自动。进程名services.exe。无依存关系。
PlugPlay,即插即用服务。默认启动类型为自动。它是Intel开发的一组规范,它赋予了计算机自动检测和配置设备并安装相应驱动程序的能力,当有设备被更改时能自动通知当前设备的状况并使用该设备变更后的程序。PlugPlay是WinXP的几个基础服务之一,在服务管理工具中无法调整它。要求设为自动。
44、Portable Media Serial Number Service=禁用。进程名svchost.exe。无依存关系。
WmdmPmSN,便携的媒体序号服务。默认启动类型为自动。这个服务其实非常简单,它是微软用来防盗版的工具之一,但目前基本上只是针对音乐。微软用它获得你系统中媒体播放器的序列号,做什么用呢?其实它是在试图控制你将盗版的音乐文件拷贝到类似MP3、MD等便携播放器上。没有多大意义,建议设为禁用。
45、Print Spooler=禁用或自动。进程名spoolsv.exe。依赖Remote Procedure Call(RPC)服务。
Spooler,打印缓存服务。默认启动类型为自动。Spooler是为了提高文件打印效率,将多个请求打印的文档统一进行保存和管理,先将要打印的文件拷贝到内存,待打印机空闲后,再将数据送往打印机处理。这样处理速度更快些。如果有打印机,则设为自动,没有打印机自然是禁用了。
46、Protected Storage=自动。进程名lsass.exe。依赖Remote Procedure Call(RPC)服务。
ProtectedStorage,受保护存放区服务。默认启动类型为自动。这一服务提供对敏感性数据保护的功能,比如密码、证书等,但通常它只针对Windows自身的敏感数据进行保护,可用来储存你计算机上的密码。通常上网的用户都比较喜欢开这个服务,毕竟像自动填表这些功能给人带来不少方便。建议设为自动。
47、QoS RSVP=禁用。进程名rsvp.exe。依赖AFD、Remote Procedure Call(RPC)、TCP/IP Protocol Driver、IPSEC driver服务。
RSVP,QoS 许可控制服务。默认启动类型为手动。这就是微软那个饱受争议的占用了20%网络带宽的服务了。对大多数朋友来说,关掉它是简单正确的选择。建议设为禁用。
48、Remote Access Auto Connection Manager=禁用。进程名svchost.exe。依赖Remote Access Connection Manager、Telephony、Plug and Play、Remote Procedure Call(RPC)服务。
RasAuto,远程访问自动联机管理员服务。默认启动类型为手动。为某些程序引用远程DNS、NetBIOS名或者地址创建一个到远程网络的连接。一般用户用不到,建议设为禁用。
49、Remote Access Connection Manager=禁用。进程名svchost.exe。依赖Telephony、Plug and Play、Remote Procedure Call(RPC)服务。
RasMan,远程访问联机管理员服务。默认启动类型为手动。如果你使用了Internet连接共享,那么需要打开它。一般用户用不到,建议设为禁用。
50、Remote Desktop Help Session Manager=禁用或手动。进程名sessmgr.exe。依赖Remote Procedure Call(RPC)服务。
RDSessMgr,远程桌面协助服务。默认启动类型为手动。这是与NetMeeting Remote Desktop Sharing很类似的一个服务。建议设为禁用。
51、Remote Procedure Call (RPC)=自动。进程名svchost。无依存关系。
RpcSs,远程过程调用服务。默认启动类型为自动。Windows系统是个典型的消息(事件)处理型系统,所以RPC对于系统的重要性不言而喻。由于Windows内部结构已相当复杂了,很难搞清楚哪些模块在用RPC哪些不用,事实上你只要关掉它,系统就可能崩溃。所以这个服务也是不可禁用的。要求设为自动。
52、Remote Procedure Call (RPC) Locator=禁用。进程名locator.exe。依赖Workstation服务。
RpcLocator,远程过程调用定位服务。默认启动类型为手动。这一服务和RPC服务并无太多关系,是用来给RPC的命名服务的。其用途简单解释就是,通过它对RPC的命名管理,调用者才能找到被调用者的位置。但由于微软系统注册表的存在,使得这些命名服务在本机上的调用上毫无意义。因此对于一般用户,建议设为禁用。
53、Remote Registry=禁用。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
RemoteRegistry,远程注册表服务。默认启动类型为自动。此服务是向其他连机的计算机开放你的注册表,也就是说,别人可以连机修改你的注册表。微软总是让这种明显是安全隐患的服务自动启动实在让人费解。强烈建议设为禁用。
54、Removable Storage=禁用。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
NtmsSvc,卸除式存放装置服务。默认启动类型为手动。此服务的名称太容易让人误解,实际上它只是对特殊可移动存储器的管理,比如ZIP软驱和磁带驱动器,不要担心你的CD和DVD等设备。从事图像设计的用户经常会用ZIP同苹果机交换文件,一般人恐怕很少使用这些特殊设备,建议设为禁用。
55、Routing and Remote Access=禁用。进程名svchost.exe。依赖NetBIOSGroup、NetBIOS Interface、Remote Procedure Call(RPC)服务。
RemoteAccess,路由和远程访问服务。默认启动类型为手动。Routing and Remote Access为软路由,即在一台连接多个网络的计算机上通过运行路由软件,以实现网络间路由的一种方法,相对于硬件路由来说很是方便经济。一般用户用不到,建议设为禁用。
56、Secondary Logon=禁用。进程名svchost.exe。无依存关系。
Seclogon,二次登录服务。默认启动类型为自动。这个服务对应于用户临时权限分配功能,在多用户使用的计算机上,某些用户因为是非管理员权限,导致某些程序无法执行。为了让没有管理员权限的已经登录用户可以使用这些程序,WinXP设计了这个功能来分配临时的管理员权限。打开这个服务后,右键点击鼠标选择\"运行方式\"将会出现对话框,让你选择执行这个程序的用户身份。建议设为禁用。
57、Security Accounts Manager=自动。进程名lsass.exe。依赖Remote Procedure Call(RPC)服务。
SamSs,安全账户管理服务。默认启动类型为自动。是负责SAM数据库的控制和维护的服务。SAM数据库位于注册表\"HKLM\\SAM\\SAM\"下,可使用Regedit32.exe打开注册表编辑器,并设置适当权限查看SAM中的内容。SAM数据库保存在磁盘上的\"系统盘\\windows\\system32\\config\"目录下的sam文件中,在这个目录下还包括一个security文件,是安全数据库的内容,两者有不少关系。SAM数据库中包含了系统中所有组、账户的信息。而WinXP启动时就需要在SAM文件中读取诸如用户名、用户全名(full name)、所属组、描述、密码、注释、是否可以更改密码、密码设置时间等信息。这也是系统中不可关闭的几个基础服务之一,如果服务启动失败,系统就只有重启了。要求设为自动。
58、Security Center=禁用。进程名svchost.exe。依赖Remote Procedure Call(RPC)、Windows Management Instrumentation服务。
wscsvc,安全中心。默认启动类型为自动。监视系统安全设置和配置。建议设为禁用。
59、Server=禁用或自动。进程名svchost.exe。无依存关系。
Lanmanserver,服务器服务。默认启动类型为自动。Server服务对应的是网络上的文件/打印机器共享,以及网络的路径映射共享功能。没有这些方面的需要你就可以关闭它。一般用户用不到,建议设为禁用。
60、Shell Hardware Detection=自动。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
ShellHWDetection,外壳硬件探测服务。默认启动类型为自动。这个服务主要还是和具有自动运行(播放)功能的硬件有关系,例如数字相机、CD-ROM等。通过这个服务,当这些硬件接上系统或放入相应媒介时,WinXP能自动探测到并做出对应动作。对于外设越来越多的现在,没有把握还是不要轻易关闭它。建议设为自动。
61、Smart Card=禁用。进程名SCardSvr.exe。依赖Plug and Play服务。
SCardSvr,智能卡服务。默认启动类型为手动。Smart Card(智能卡)其外型和一般信用卡大小一样,但多了一块指甲大小的IC芯片后,使原本普通的一张卡片变成拥有资料控管与逻辑运算的能力。如果你拥有智能卡及相关的读卡设备就开启这个服务,否则就禁用吧。一般用户用不到,建议设为禁用。
62、SSDP Discovery Service=禁用。进程名svchost.exe。依赖HTTP服务。
SSDPSRV,简易服务发现协议之发现服务。默认启动类型为手动。SSDPSRV主要用于家庭网络上UPnP(Universal Plug and Play,统一即插即用)设备的搜索。一般用户用不到,建议设为禁用。
63、System Event Notification=自动。进程名svchost.exe。依赖COM+ Event System、Remote Procedure Call(RPC)服务。
SENS,系统事件通知服务。默认启动类型为自动。它的简单描述是\"跟踪系统事件,如登录Windows、网络以及电源事件等。将这些事件通知给COM+事件系统‘订阅者(subscriber)’\"。记录用户登录/注销/重起/关机信息,不过对于服务器尤其重要。尽管有人认为这个服务无关紧要,事实上系统是否需要它取决于你在系统里安装了些什么,而许多应用程序的运行是要通过SENS来实现的,所以建议设为自动。
64、System Restore Service=禁用。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
Srservice,系统还原服务。默认启动类型为自动。这是大家都非常熟悉的系统还原功能了,如果不使用的话,先在\"我的电脑\"属性中的系统还原选项卡关闭,然后在这里将服务禁用即可。建议设为禁用。
65、Task Scheduler=禁用。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
Schedule,计划任务服务。默认启动类型为自动。此服务支持WinXP的计划任务,它能使程序在预定的时间自动运行,如定期进行磁盘碎片整理、病毒扫描、更新等,可根据自己的需要选择是否开启。建议设为禁用。
66、TCP/IP NetBIOS Helper=禁用。进程名svchost.exe。依赖AFD、NetBios over Tcpip、TCP/IP Protocol Driver、IPSEC driver服务。
LmHosts,TCP/IP NetBIOS 助手服务。默认启动类型为自动。该服务能在TCP/IP上提供NetBIOS支持。NetBIOS网络协议,它是由IBM开发的一个很古老的协议,当年在局域网上占据主导。由于NetBIOS不具备路由功能,也就是说它的数据包无法跨网段传输,因此在广域网、城域网大行其道的今天,它只能退居配角。由于NetBIOS是完全基于局域网的,因此作为访问Internet资源的一般用户可以禁用它,除非你的系统处在小局域网中,而且使用的也正是NetBIOS协议。一般用户用不到,建议设为禁用。
67、Telephony=手动。进程名svchost.exe。依赖Plug and Play、Remote Procedure Call(RPC)服务。
TapiSrv,电话服务。默认启动类型为手动。简单地说这个服务能为计算机提供电话拨号的能力。如果你使用了任何形式的拨号,不管是用拨号调制解调器还是DSL/Cable连接到Internet,还是通过电话线连接其他计算机,或是拨打电脑IP电话、发传真等,你就有必要保留这个服务,反之就可关掉它。建议设为手动。
68、Telnet=禁用。进程名tlntsvr.exe。依赖NT LM Security Support Provider、Remote Procedure Call(RPC)、TCP/IP Protocol Driver、IPSEC driver服务。
tlntSvr,远程登录服务。默认启动类型为手动。让用户以模拟终端的方式,登录到Internet的某台主机上,一旦连接成功,这些个人计算机就好像是远程计算机的一个终端,可以像使用自己的计算机一样输入命令,运行远程计算机中的程序。基于安全性理由,如果没有特别需求,这个服务一定要关掉禁用。建议设为禁用。
69、Terminal Services=禁用或手动。进程名svchost。依赖Remote Procedure Call(RPC)服务。
TermService,终端机服务。默认启动类型为手动。它的简单描述是\"允许多位用户连接并控制一台机器,并且在远程计算机上显示桌面和应用程序。这是远程桌面(包括管理员的远程桌面)、快速用户转换、远程协助和终端服务器的基础结构\"。这段描述已将该服务的用途解释得很清楚了,需要强调的是,这些方便都是以安全为代价的,如果平时不用就一定要关掉。建议设为禁用。
70、Themes=自动。进程名svchost.exe。无依存关系。
Themes,主题服务。默认启动类型为自动。没有服务依存关系。很多人都喜欢使用XP的布景主题,不过如果用户不喜欢花哨的主题,就关闭好了。建议设为自动 。
71、Uninterruptible Power Supply=禁用。进程名ups.exe。无依存关系。
UPS,不间断电源管理服务。默认启动类型为手动。它的简单描述是\"管理连接到计算机的不间断电源(UPS)\"。建议设为禁用。
72、Universal Plug and Play Device Host=禁用。进程名svchost.exe。依赖HTTP、SSDP Discovery Service服务。
UPNPhost,统一即插即用驱动主机服务。默认启动类型为手动。它同SSDP Discovery Service是继承关系,后者搜索发现UPnP设备,而UPNPhost为UPnP设备提供驱动支持。当然通常情况下关闭即可。一般用户不需要,建议设为禁用。
73、Volume Shadow Copy=禁用。进程名vssvc.exe。依赖Remote Procedure Call(RPC)服务。
VSS,卷影复制服务。默认启动类型为手动。管理并执行用于备份和其他目的的卷影复制。一般用户不需要,建议设为禁用。
74、WebClient=禁用。进程名svchost.exe。依赖WebDav Client Redirector系统组件。
WebClient,Web客户端服务。默认启动类型为自动。使用WebDav可将档案或数据夹上传到某个Web服务,这个服务对于未来.NET意义更大。基于安全性的理由,现在你可以尝试关闭它。一般用户极少用到,建议设为禁用。
75、Windows Audio=自动。进程名svchost.exe。依赖Plug and Play、Remote Procedure Call(RPC)服务。
AudioSrv,Windows音频服务。默认启动类型为自动。如果你的机器没有声卡可以关闭它。建议设为自动。
76、Windows Driver Foundation - User-mode Driver Framework=手动。进程名svchost.exe。依赖Plug and Play服务。
驱动程序管理服务。默认启动类型为手动。建议设为手动。
77、Windows Firewall/Internet Connection Sharing (ICS)=自动。进程名svchost.exe。依赖Network Connections、Remote Procedure Call(RPC)、Windows Management Instrumentation服务。
SharedAccess,Internet连接共享和防火墙服务。默认启动类型为自动。这个服务提供WinXP内置的Internet连接共享和防火墙功能。如果你正使用诸如wingate之类的第三方软件,这个服务就不需要了。为了安全,建议设为自动。
78、Windows Image Acquisition (WIA)=手动。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
Stisvc,Windows影像取得服务。默认启动类型为手动。该服务为控制面板中的\"扫描仪和照相机\"功能提供支持。通过这个功能,用户在安装好设备驱动后无需要再安装相关管理软件,就能轻易操作扫描仪和数码相机来获得图像。建议设为手动。
79、Windows Installer=手动。进程名msiexec.exe。依赖Remote Procedure Call(RPC)服务。
MSIServer,Windows安装服务。默认启动类型为手动。这一服务同Application Management服务基本是一样的。从微软的解释看,Windows Installer服务应该是.MSI文件的最直接执行者。建议设为手动。
80、Windows Management Instrumentation=自动。进程名svchost.exe。依赖Remote Procedure Call(RPC)服务。
Winmgmt,Windows管理规范服务。默认启动类型为自动。WMI是Windows中的基础管理结构,它通过一组常用接口来控制和监视系统(如对系统属性的查看与更改、设置用户权限等)。WMI为访问大量的Windows管理数据提供了一个统一的机制。WMI通过脚本、C++程序接口、.NET类(系统管理)和命令行工具(WMIC)提供了对信息的访问。WMI的功能还包括事件、远程、查询、查看、计划和实施用户扩展及更多内容。总而言之,虽然在服务管理工具中可以关闭,但最好别动它,否则会出现许多莫名的问题。要求设为自动。
81、Windows Management Instrumentation Driver Extensions=手动。进程名svchost.exe。无依存关系。
Wmi,Windows管理规范驱动延伸服务。默认启动类型为手动。没有服务依存关系。微软的白皮书介绍,该服务是作为WMI服务在驱动程序方面的一个延伸,简单说主要就是为让系统方便地获知计算机中OEMs(original equipment manufacturers)以及IHVs(independent hardware vendors)等与硬件厂商相关的硬件信息。建议设为手动。
82、Windows Media Player Network Sharing Service=禁用。进程名WMPNetwk.exe。依赖HTTP、HTTP SSL 、Universal Plug and Play Device Host、SSDP Discovery Service服务。
默认启动类型为手动。使用通用即插即用设备与其它网络播放机和媒体设备共享Windows Media Player媒体库。一般用户不需要,建议设为禁用。
83、Windows Time=手动。进程名svchost.exe。无依存关系。
W32Time,Windows时间服务。默认启动类型为自动。这一服务对应WinXP的Internet对时服务,如不需要关闭即可。建议设为手动。
84、Wireless Zero Configuration=禁用。进程名svchost.exe。依赖NDIS 用户模式I/O协议、Remote Procedure Call(RPC)服务。
WZCSVC,无线配置服务。默认启动类型为自动。它的简单描述是\"为您的802.11适配器提供自动配置\"。802.11是大家都比较熟悉的无线局域网协议标准了,其已经在市场上占据了优势。当然,802.11协议、蓝牙标准和HomeRF工业标准是无线局域网所有标准中最主要的竞争对手,它们也各有优劣。然而802.11b无线局域网技术已经在美国得到了广泛的应用,所以微软的WinXP内置服务支持也就不足为奇了。如果你没有使用无线网络适配卡装置,那么可以关闭服务。一般用户不需要,建议设为禁用。
85、WMI Performance Adapter=手动。进程名wmiapsrv.exe。依赖Remote Procedure Call(RPC)服务。
WmiApSrv,WMI性能适配器服务。默认启动类型为手动。此服务提供了从WMI HiPerf 提供者获得的性能库信息,需要以手动方式进行配置,并不会在缺省状态下实现运行。对于普通的使用者最好保持其默认状态——手动。建议设为手动。
86、Workstation=自动。进程名svchost.exe。无依存关系。
Lanmanworkstation,工作站服务。默认启动类型为自动。它不依赖于其他服务,但有不少服务都依赖它。该服务同样为基础服务,请保持其默认状态(自动)不要关闭。要求设为自动。
87.你安装的杀毒软件的相关服务要设为自动。
三、扫描病毒(极力推荐)
用杀毒软件进行全盘扫描,清除或删除病毒。
四、用GHOST备分,以备不测只需(随你意愿)
备分前请先卸载杀毒软件,否则恢复后杀毒软件无法正常运行,建议备分前进行磁盘碎片整理。如果你的应用软件安装在非系统盘,可别忘了对该盘的备分。
五、内存不能为read或writte的解决方法(有此问题,药到病除,如没有,当然就不需要了)
系统dll文件没有注册,可能引起各种各样不可知的问题,比如无法打开二级链接,经常出现“内存不能为read或written”等错误。如何一下把所有的dll文件重新注册一遍呢?
运行中输入cmd,在命令提示符下输入:
for %1 in (%windir%\\system32\\*.dll) do regsvr32.exe /s %1
注意,是在命令提示符下,不是在“运行框”中!!
你也可以更改注册文件的路径,不一定在system32文件夹下。这比用软件方便多了。
六、系统减肥(谨慎选用)
小提示:如果你的硬盘空间不是很小,建议不要减肥,因为这并不影响系统的运行速度。当然了,如果你的硬盘空间比较紧张,还是可以按以下的步骤进行减肥,我测试过,减肥后对系统的速度和稳定性没有多大影响。
(格式化硬盘时用NTFS文件系统,此法可节约磁盘空间)
用雨林木风YlmF优化工具或YlmF优化工具DIY1.6进行系统减肥会更快捷,如果你不放心,请用以下方法进行手动删除。
删除以下目录或文件(不带*号的连目录一起删,有的目录不能删除,但可以删除目录里面的内容。删除的时候,有时系统会发出警告提示,点取消即可):
小提示:删除前你必须去掉系统的隐藏属性,否则有些文件会看不见。方法:我的电脑——工具——文件夹选项——查看,在“高级设置”框内,首先在“显示系统文件夹的内容”前加上钩号,去掉“隐藏受保护的操作系统文件”前面的钩号,再选中“显示所有文件和文件夹”,点击确定即可。
1.C:\\WINDOWS\\$* 以$号开头的所有目录,补丁的反安装,约70M
2.C:\\WINDOWS\\*.log 虽然不大,但太多,看的不爽。
3.C:\\WINDOWS\\pchealth (注意删除前把helpctr\\binaries\\msconfig.exe 复制到system32目录)帮助支持中心,26M
4.C:\\WINDOWS\\Driver Cache\\i386目录下的Driver.cab文件 ,60M, 驱动备份
5.C:\\WINDOWS\\ime\\CHTIME 繁体输入(没有必要,很多输入法都支持繁体) 10.7M
6.C:\\WINDOWS\\ime\\imejp 日文输入 ,12M(有的操作系统此文件夹本来就是空的)
7.C:\\WINDOWS\\ime\\imejp98 日文输入 12M(有的操作系统此文件夹本来就是空的)
8.C:\\WINDOWS\\ime\\IMJP8_1 日文输入 63M(有的操作系统此文件夹只有12M)
9.C:\\WINDOWS\\ime\\IMKR6_1 韩文输入 10.4M
10.C:\\WINDOWS\\system32\\dllcache\\* 备份Dll,约400M(用这个命令也可达到同样效果:开始——运行——sfc.exe /purgecache)
11.C:\\WINDOWS\\system32\\IME\\CINTLGNT 仓颉码 2.5M
12.C:\\WINDOWS\\system32\\IME\\TINTLGNT 注音输入 3M
13.C:\\WINDOWS\\Help\\* 帮助文件,48.5M
14.C:\\WINDOWS\\Temp\\* 通常没东西
15.C:\\WINDOWS\\Prefetch\\* 预取文件,删除后毫无影响
16.C:\\WINDOWS\\Installer\\*.msi (长名目录不能删!)msi程序安装后剩下的一些垃圾
17.C:\\WINDOWS\\Resources\\Themes\\* 建议保留Classical是经典主题,Luna.Theme是XP主题 5M,不喜欢的删除吧
18.C:\\WINDOWS\\srchasst 搜索助理(一个小狗),12M
19.C:\\WINDOWS\\msagent 微软代理 3.2M
20.C:\\WINDOWS\\SoftwareDistribution\\SelfUpdate*(下载补丁临时存放点,刚安装的操作系统没有)约60M
21.C:\\WINDOWS\\system32\\oobe 激活程序(我们用的都是免激活XP,不需要) 7.5M
22.C:\\WINDOWS\\Web\\Wallpaper\\* 墙纸,留下一个好看的bliss.bmp即可,全删也行。 2M
23.C:\\Program Files\\Windows NT\\Pinball 弹球,删了。记得删除开始菜单的连接 2.4M
24.C:\\Program Files\\Movie Maker 全删,9.9M,垃圾。记得删除开始菜单的连接
25.C:\\Program Files\\Messenger 信使服务程序,2M
26.C:\\Program Files\\MSN Gaming Zone 微软的游戏,垃圾,8M
27.C:\\Program Files\\Uninstall Information\\* 安装程序留下的垃圾
28.C:\\Program Files\\WindowsUpdate\\* XP升级留下的垃圾
29.C:\\Downloads\\* 网上下载的一些东东
30.C:\\document. and Settings\\(你的用户名)\\Recent\\* 你最近使用的文档
31.C:\\document. and Settings\\(你的用户名)\\Local Settings\\Temp\\* 临时文件
32.C:\\document. and Settings\\(你的用户名)\\Local Settings\\History\\* 历史记录
33.C:\\document. and Settings\\(你的用户名)\\Local Settings\\Temporary Internet Files\\* 访问网页留下的痕迹
34.如果你使用的是NTFS文件系统并且感觉实在空间紧张, 启用NTFS的压缩功能, 这样还会少用2x%的空 间。方法:打开我的电脑,在C盘上点右键——属性——常规,选中“压缩驱动器以节约磁盘空间”。

《步步为营封WIN7》进阶部署控制
使用和拓展系统封装与部署技术的目的有二:
1、在尽可能保证稳定的基础上加快系统安装速度,减少重复的机械化的无意义劳动,提高工作效率;
2、降低技术门槛,让需要多步骤执行的过程简化为按几个按钮就能完成的事情。
如果是为了这两个目的考虑,那么我们在学会了基本的部署阶段控制的基础上,就要拓展一些内容了。在上一章里我说过,一般的WIN7封装与部署有两个缺点:
1、使用非ADMIN登陆不符合中国用户的习惯;
2、繁琐的OOBE过程有效的降低了我们的工作效率,增加了不必要的负担。
那么本章的目的就明确了:
1、想办法自动激活ADMIN账户
2、跳过OOBE过程
3、接管部署过程以实现1和2。
(一)自动激活ADMIN
WIN7的ADMIN账户默认是禁用的,我们可以在封装前将其设置为启用,而后方便我们的自动化封装工作。
[但烦人的问题也随即出现了,ADMIN账户在封装后又会自动改为禁用。本想大不了在封装后再手工开启呗,结果发现部署完成后ADMIN账户又自动禁用了(无语……)。好吧,看来微软是无论如何也要禁用ADMIN了,那么这个问题就由我们来解决吧。
1、激活ADMIN账户的方法
这个并不复杂,其实只需要一行批处理命令就可以了:
复制代码
01.net user Administrator /Active:yes
这个命令是WIN7自带的,不是第三方的,所以稳定性和适用性无需担心。
AU3的写法是:
复制代码
01.RunWait(@ComSpec & " /c " & "net user Administrator /Active:yes", "", @SW_HIDE)
大家可以参照
2、激活ADMIN的时机
系统部署到进入桌面的过程大致为:
系统部署-->重启-->系统OOBE-->首次登录-->桌面
在“系统部署”这个步骤完成后系统会自动禁用ADMIN账户,而我们如果跳过了OOBE过程,就直接到了“首次登录”这个步骤。但这样就造成了问题,即ADMIN没有被激活,跳过OOBE后又没有新账户可以用(除非封装前残留了其他账户),这样就造成了系统内无可用用户!这个后果就严重了,没有用户可用,也无法创建新用户,那么这个系统就无法被登录和使用,则这个系统就成了名副其实的废物……
我们通过SIM设定后,系统部署中、首次登录、桌面我们都有可用接口,但自动禁用ADMIN是在部署后执行的,而由于我们跳过了系统OOBE过程,则我们又必须在首次登录前就激活ADMIN,所以系统部署中、首次登录、桌面三个接口我们都无法使用。我们需要这样一个时机,即在系统部署完成后(即windeploy.exe运行完毕后,随后详解)ADMIN被禁用后,执行ADMIN的激活,才能达到我们需要的目的
这样我们就需要更强大的部署过程控制能力,以实现部署后这个程序调用接口(当然,顺道我们也可以实现部署前程序调用接口)。至于详细怎么做,本章第“(三)”部分会详细说明
(二)跳过OOBE过程
这个的实现相对简单,回想上一章我们使用SIM设定OOBE功能模块的时候,OOBE部分有一个属性叫做“SkipMachineOOBE”。
根据说明上说,SkipMachineOOBE是在WIN7测试时才使用的一个参数,在一般的系统安装中是被废弃的属性。但实践证明,在系统部署过程中这个选项可以有效的跳过OOBE过程。实践出真知,无论它本来的设计意图是什么,只要能够实现我们的目的,就是好功能,没有必要过于拘泥于理论。
在SIM中我们将OOBE模块的SkipMachineOOBE设置为“true”
SkipMachineOOBE一旦被设置为“true”,OOBE过程就会被跳过,则OOBE部分的其他设定就没有太多意义了,所以我取消OOBE的其他设定。
保存,系统封装时使用这个xml配置文件,就会跳过系统OOBE过程。
需要注意的是,如果没有自动激活ADMIN且封装前系统内没有余留其他用户,则不要使用此功能。原因在“(一)”中我已经说明。
(三)接管部署
系统封装与部署主要就是执行了两个程序:
1、system32\sysprep\sysprep.exe,运行这个程序执行系统封装,我们已经很熟悉这个了
2、system32\oobe\windeploy.exe,系统进入系统部署模式后,自动运行这个程序以完成系统部署中的各项功能
那么,系统是如何知道进入系统部署模式后要运行哪个程序那?或者说,系统是怎么知道要运行windeploy.exe以完成系统部署的?
打开注册表“HKEY_LOCAL_MACHINE\SYSTEM\Setup”,看一下“Setup”键的键值,一般为“oobe\windeploy.exe”,这下我们明白了,是这个键值规定了要执行什么。那么如果我们加入了自己写的部署控制程序,又更改这个键值指向我们的程序,是不是就可以接管部署过程了?答案是“可以”。
为了更好测试,我们以批处理的方式来实现。写如下批处理,名为deploy.cmd:
复制代码
01.start /wait %windir%\system32\oobe\windeploy.exe
02.net user Administrator /Active:yes
即为先调用windeploy.exe完成系统部署,而后使用命令行激活ADMIN账户。
好的,我们来实践一下。首先我们运行sysprep.exe执行系统封装,别忘记加载我们刚才生成的用于跳过OOBE过程的无人值守xml文件,一定要设置封装完毕后退出,以方便其后的设定。(如果xml中还规定了调用其他程序,例如上一章的test.exe,别忘记将test.exe放入所规定的windows文件夹)
封装完毕后,打开注册表编辑器,到“HKEY_LOCAL_MACHINE\SYSTEM\Setup”键下
将setup键值改为“deploy.cmd”
而后将deploy.cmd复制到system32目录下。(setup键值规定的程序是以system32为起始目录的,不可使用绝对路径)!
完成后,重启计算机,进入系统部署过程。可以看到我们写的批处理接管了部署过程,由我们的批出里调用windeploy执行部署过程,windeploy执行完毕后还会由命令行自动激活ADMIN。
部署完成后,重启计算机,自动跳过OOBE过程,直接以ADMIN登陆系统
到这里,我们就用最原始的批处理完成了对WIN7部署过程的接管。如果您讨厌批处理的黑框,可以尝试用AU3等写一个类似的程序。
有的朋友可能要问了,那部署前接口怎么实现?这个简单,只要是运行于“start /wait %windir%\system32\oobe\windeploy.exe”之前的不就是部署前调用吗?以后我们可以很方便的在windeploy.exe运行前执行例如驱动解压等过程,就像现在XP部署过程一样。
最基本和最核心的方法我已经带给了大家,大家想开出什么花,由大家自己发挥吧!
到这里,我们实现了自动激活ADMIN、自动跳过OOBE,有效的加快了系统部署过程,减少了不必要的操作。本章中,我们还学习了如何接管部署过程,以及部署前和部署后接口的实现方法。本章虽然比较短,但内容比较多,请大家认真阅读,多加实践。

]《步步为营封WIN7》初级部署控制
在Windows XP封装时代,我们用Sysprep.inf来控制部署过程中的基本问答部分,以实现基本的无人值守安装。
到了Windows Vista/2008/7这代系统以后,微软改用了文件映像系统安装方式、大幅的改进了系统部署过程中的各种控制项目,微软也提供了“Windows系统映像管理器(Windows System Image Manager,简称SIM)”来实现对Windows Vista/2008/7这代系统部署过程的控制,SIM所能管理的项目种类繁多,如果能够得心应手的使用SIM那么对系统各方面的控制将会达到一个不错的高度。
SIM用来生成一个XML文件,此文件可以用于普通系统安装或系统封装部署中的各种控制项目,我们讨论的是系统封装与部署,所以今天我们所讨论关于SIM的使用均是以“为实现更方便快捷的系统封装与部署”为核心来进行的。有关SIM的进一步使用,请大家逐步摸索,今天我们只研究在系统封装部署最常用的部分。
XWAIK中包含很多与Windows系统映像定制相关的内容,包括完整全面的帮助文档,选中不解的部分F1一下会更快得到答案。
(一)SIM的基本使用
下载WAIK,安装完毕后,打开SIM,进入如下界面:
菜单栏,【文件】,【新建应答文件】,这时会提示:
单击【是】,选择系统映像(Windows7的系统映像可以到Windows7系统光盘的source目录提取):
选中系统映像,SIM经过检测后会询问你要以这个映像中的哪个版本为依据进行设置,选择与您对应的版本,例如Ultimate
【确定】后SIM会有相应的改变:
SSIM中我们最常用的有:
1、左下角的【Windows 映像】,这里可以选择我们要进行设定的模块-
2、中间靠上部分的【应答文件】,这里我们会以树状结构预览到我们的各项设定,包括如下时机:
(1)【windowsPE】,众所周知Windows7在安装前会启动一个WINPE环境以执行系统安装,这个设定就是关于这个PE的
(2)【offlineServicing】,这部分设定是关于离线服务的,一般用不到
(3)【generalize】,这部分设定很重要,关于一般系统部署过程的
(4)【sepcialize】,这部分设定很重要,关于特殊系统部署过程的
(5)【auditSystem】和【auditUser】,这两部分是关于系统审核的,一般用不到
(6)【oobeSystem】,这部分设定很重要,关于OOBE过程的
3、右侧的【属性】,这里用于设定每个选项的具体属性
SIM遵循这样一种过程,在【Windows 映像】中选择要设定的模块,将选中的模块传送到【应答文件】中适当的实机,后在【属性】中对刚刚传送来的实机进行详细设定。"
下面我就以实例讲解使用SIM的一般过程:
第一,添加要在“部署中”调用的程序
【Windows 映像】Components中选择“Windows-Deployment”模块,并右键单击其下的:“RunSynchronous”子模块,单击【添加设置传送到sepcialize】
(RunSynchronous和RunAsynchronous的功能是相同的,都是添加调用程序,但RunSynchronous是逐个运行的,而RunAsynchronous是不等待上一个运行结束即运行下一个的)
右键【应答文件】中刚传送来的RunSynchronous,单击【插入新建RunSynchronousCommand】,以创建新的调用
单击刚刚添加的RunSynchronousCommand,在右侧的【属性】部分设置其属性,主要有设定:
Description(描述):我们设定为“InDeploy”
Order(被调用的顺序):我们设定为“1”
Path(要调用的程序名):我们设定为“%WinDir%\Test -InDeploy”
如果有更多调用,请仿照这个过程,添加更多程序就可以了,注意设定一下Order属性'
第二,添加“首次登录”调用的程序
【Windows 映像】Components中选择“Windows-Shell-Setup”模块,并右键单击其下的:“FirstLogonCommands”子模块,单击【添加设置传送到oobeSystem】
右键【应答文件】中刚传送来的FirstLogonCommands,单击【插入新建SynchronousCommand】,以创建新的调用
单击刚刚添加的SynchronousCommand,在右侧的【属性】部分设置其属性,主要有设定:$ j6 z: A/ [3 e% n- l. i" C. ]! a
Description(描述):我们设定为“FirstLogon”
LOrder(被调用的顺序):我们设定为“1”
CommandLine(要调用的程序名):我们设定为%WinDir%\Test.exe -FirstLogon”
如果有更多调用,请仿照这个过程,添加更多程序就可以了,注意设定一下Order属性
第三,添加“进入桌面后”调用的程序
【Windows 映像】Components中选择“Windows-Shell-Setup”模块,并右键单击其下的:“LogonCommands”子模块,单击【添加设置传送到oobeSystem】
右键【应答文件】中刚传送来的LogonCommands,单击【插入新建AsynchronousCommand】,以创建新的调用
单击刚刚添加的AsynchronousCommand,在右侧的【属性】部分设置其属性,主要有设定:
Description(描述):我们设定为“Go2Desktop”
Order(被调用的顺序):我们设定为“1”
CommandLine(要调用的程序名):我们设定为“%WinDir%\Test.exe -Go2Desktop”
如果有更多调用,请仿照这个过程,添加更多程序就可以了,注意设定一下Order属性
第四,添加OOBE阶段设定项目
【Windows 映像】Components中选择“Windows-Shell-Setup”模块,并右键单击其下的:“OOBE”子模块,单击【添加设置传送到oobeSystem】
单击刚传送到【应答文件】中的OOBE部分,查看右侧【属性】部分进一步设定:
HideEULAPage:设定为true,即为跳过协议界面;设定为false,则不跳过
HideWirelessSetupInOOBE:设定为true,即跳过OOBE中的无线设定部分;设定为false,则不跳过
NetworkLocation:有三个值,Home(家庭)、Work(工作)、Other,根据情况设定
ProtectYourPC:1、2、3三个值,对应自动获取所有补丁、自动获取重要补丁、不自动升级三个选项
SkipUserOOBE:跳过用户OOBE过程
通过这四个例子,我想大家对SIM的使用已经有了一定的熟悉,SIM中还有N多值可以设定,大家可以逐步尝试。如遇到不明确的内容,可以选中选项后按F1,WAIK有详细的帮助文档。
(二)Sysprep3.14的使用
自Windows Vista开始,微软更新了Sysprep程序,版本为3.14。新版Sysprep.exe与以往版本差异很大,参数如下:
复制代码
01./audit
02.重新启动计算机进入审核模式。审核模式使您可以将其他驱动程序或应用程序添加到 Windows。您还可以在将 Windows 安装发送给最终用户前对其进行测试。
03.如果指定了无人参与 Windows 安装程序文件,则 Windows 安装程序的审核模式将运行 auditSystem 和 auditUser 配置阶段。
04./generalize
05.准备要作为映像的 Windows 安装。如果指定此选项,所有唯一的系统信息将从 Windows 安装中删除。安全 ID (SID) 重置,所有系统还原点将被清除,事件日志也将被删除。
06.下次计算机启动时,将运行 specialize 配置阶段。将创建新的安全 ID (SID),如果用于 Windows 激活的时钟三次没有被重置,将其重置。
07./oobe
08.重新启动计算机进入“欢迎使用 Windows”模式。“欢迎使用 Windows”允许最终用户自定义其 Windows 操作系统、创建用户帐户、命名计算机和其他任务。在“欢迎使用 Windows”启动前,将立即处理答案文件中 oobeSystem 配置阶段的所有设置。
09./reboot
10.重新启动计算机。使用该选项审核计算机并确保首次运行体验正确工作。
11./shutdown
12.在 sysprep 命令完成运行后关闭计算机。
13./quiet
14.运行 Sysprep 工具而不显示屏幕确认消息。如果自动运行 Sysprep 工具,则使用该选项。
15./quit
16.运行指定命令后,关闭 Sysprep 工具。
17./unattend:answerfile
18.在无人参与安装期间,将答案文件中的设置应用到 Windows。
19./ Vanswerfile
20.指定要使用的答案文件的路径和文件名。
在无人参与安装期间,将答案文件中的设置应用到 Windows。
指定要使用的答案文件的路径和文件名。
读完这些参数的朋友应该注意的到了一点:/unattend:answerfile,举例:/unattend:D:\xxx.xml。到这里大家应该看明白了,微软新一代系统的部署并不是在系统部署过程中才去读取无人值守文件的内容,而是在系统封装时就将这些信息读入了,读入的方法正是使用sysprep3.14的命令行加以设定!
好的,下面我们就来看一个使用sysprep3.14封装系统的实例,以便于更深入的了解这个过程中要注意的问题。
我们在刚才是一共SIM生成无人职守应答文件时,设定了在部署中、首次登录、进桌面调用的名为Test的程序,这个程序我放在了附件里,有需要请下载。注意,如果设定了要运行不存在的程序,则系统部署过程中会直接报错,请特别注意。所以如果你按照刚才SIM的使用实例中设定了调用windows文件夹下的test.exe程序,那么务必在执行下述例子之前将test.exe放入windows文件夹。
1、将我们刚才生成的Untitled.xml放在D盘根目录下,打开命令提示符,运行如下命令:复制代码
01.c:\windows\system32\sysprep\sysprep.exe /oobe /generalize /quit /quiet /unattend:d:\Untitled.xml
2、运行成功,系统封装过程开始
由于我设定的是“/quit ”,所以封装后不会重启,在确认无其他调整后,手动重启计算机
3、系统部署到下图阶段时(部署中),会调用我们的test.exe运行
4、部署完毕进入系统,进入OOBE过程
5、OOBE结束,首次登录:
6、首次登录时调用我们的test.exe
7、首次进桌面调用我们的test.exe
到这里,我们就通过使用SIM,配合sysprep的命令行参数,完成了一次自动化封装,并对系统部署过程进行了简单的控制。
但我个人认为这并不完美:
1、几遍我们在SIM中设置了部分OOBE部分的自动应答,但OOBE过程还是过长,封装部署的目的就是快速,这个过程耽误了太多时间;
2、每次部署后都要新建用户,这对国内普遍使用Administrator登陆的习惯不符。
用过ES3_WIN7封装模块的朋友可能已经发现了,ES3_WIN7封装模块具有自动跳过OOBE和直接使用ADMIN登陆的能力,这大大提高了系统部署速度,简化了系统设置过程,直接减少了劳动量。这是怎么达到的?请听下回分解!

Win7 封装深入研究教程《步步为营封 Win7》C
2009-12-06 00:21
《步步为营封WIN7》磁盘控制器 (一)概念 关于磁盘控制器驱动,这似乎是个老生常谈的问题了。从大概两年前我就一直在努力的纠正“SATA驱动、串口驱动”这些概念错误,但效果不佳,直至今日仍有部分技术人员将这些具有很大偏颇性的词语挂在嘴边,乃至误导更多的新手。所以今天我会再次重复强调一下“磁盘控制器”和“磁盘控制器驱动”的概念,新手请务必读懂,老手也有必要进行重温。 什么是磁盘控制器?从字面上也大概可以看出,磁盘控制器的作用是管理和控制磁盘。这里的“磁盘”是一个广义的概念,泛指现在常用的机械硬盘和固态硬盘。磁盘控制器有集成于主板上的,也有独立的(如各类SCSI卡),而且磁盘控制器是由来已久的,不是到“SATA时代”才开始出现的。我们这里一定要搞清楚三个问题: 1、磁盘控制器与磁盘无关。 系统是通过磁盘控制器来识别磁盘的,所以磁盘控制器上的磁盘无论是什么样子(无论是PATA、SATA、RAID、SCSI以及等等)系统是绝对不会操心的,系统唯一关心的是它能否识别磁盘控制器,如果能识别磁盘控制器那么磁盘控制器就会告诉系统怎么去管理磁盘。 这就好像以为领导要找一份档案材料,他只要找的到档案室的管理员就可以,至于这个档案室管理员去什么样的档案柜上怎么去找档案材料,领导是无需担心的。就像系统无需操心磁盘类型是一样的 原版系统中(无论是WINXP还是WIN7)都会包含一定量的磁盘控制器驱动,这些驱动可以应付部分磁盘控制器,而且一般而言,应付并口磁盘控制器是没有什么问题的。但随着时间的推移,随着新硬件和新磁盘控制器的推出,系统自带的磁盘控制器驱动会越来越显得单薄,这就是为什么我们在系统封装与部署时必须增补额外磁盘控制器驱动的原因。 2、磁盘控制器驱动是针对磁盘控制器的 上文已述,系统并不关心磁盘是什么样的,而系统只需要能够控制磁盘控制器就可以了。那么系统要怎么才能拥有对磁盘控制器的控制能力?答案就是通过驱动程序。系统通过磁盘控制器驱动获得对磁盘控制器的控制能力,从而控制磁盘。 3、磁盘控制器工作模式与磁盘类型无关。 现在硬盘的各种标识让人眼花缭乱,而各种关于磁盘控制器工作模式的描述又让人产生各种混淆,SATA、SATAII、AHCI、RAID以及等等,但我这里要说的是,你的硬盘是SATA那么系统就真的把你的硬盘当做SATA了吗?答案为否。 刚才已经说了,系统通过磁盘控制器了解磁盘,而磁盘控制器又有着多种工作和控制模式。在CMOS里我们可以看到对磁盘控制器的设置,大多磁盘控制器拥有多种工作模式,例如IDE模式、AHCI模式、RAID模式等等。如果你是一个SATA硬盘,而磁盘控制器开启的是IDE模式,那么很遗憾,系统仅仅把你的硬盘当做普通IDE硬盘来对待。建议,如果您的硬盘支持更高级的工作模式,请把CMOS里的设置也相应调整以提高磁盘性能。 说完这些概念,我请大家在今后不要再谈论所谓“SATA硬盘驱动”了,这句话带有很大的错误性,并容易误导更多的新手! (二)磁盘控制器驱动 封装用磁盘控制器驱动(俗称SRS驱动)和即插即用磁盘控制器驱动还是有区别的。 封装用磁盘控制器驱动属于系统关键设备驱动,随系统启动而启动,属于不可或缺的驱动,如果没有这个驱动系统就无法控制磁盘控制器,从而无法操作磁盘,结果就是造成系统的宕机。即插即用磁盘控制器驱动则不同,它就像显卡和声卡的驱动一样,不安装仅仅是无法发挥硬件的最大效能而已,例如显卡驱动不装各种效果无法开启、声卡驱动不装会无声音等。但封装用磁盘控制器驱动和即插即用磁盘控制器驱动本身是无区别的,所以这只是同一种驱动的两种工作模式罢了。 那么封装用磁盘控制器驱动是怎么工作的呢? 1、系统启动时检测系统关键设备列表,并准备将这个列表中的设备启动起来,这个列表在注册表中的: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase 打开CriticalDeviceDatabase键,其下是所有系统关键设备的硬件ID。而我们看一个一硬件ID名命名的键,一般包括ClassGUID和Service子键,键值为拥有此硬件ID的设备的设备所属类和所调用的系统服务。 如果当前磁盘控制器存在于系统关键设备中,那么就根据磁盘控制器硬件ID的Service键去寻找它所需要使用的服务。而如果当前磁盘控制器不存在于系统关键设备中,则直接蓝屏宕机。 2、使用磁盘控制驱动服务,系统的所有服务都位于: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services 当然也包括磁盘控制器驱动的服务。而如果当前磁盘控制器所需要的驱动服务并不存在,则直接蓝屏宕机。 我们打开一个磁盘控制器驱动的服务,这个服务包括很多子键,但其中较为重要的是ImagePath和Start,它们分别规定了本服务要加载哪个驱动文件和本服务的启动方式。 3、加载磁盘控制器驱动文件,启用磁盘控制器。由启动的磁盘控制器驱动服务决定加载哪个驱动文件,这些驱动文件一般都位于C:\Windows\System32\drivers中,而如果这个驱动文件在被加载的时候不存在,则直接蓝屏宕机。 通过如上描述,我们发现了如下一个过程: 系统关键设备-->设备驱动服务-->设备驱动文件。 (1)当前磁盘控制器是否属于系统关键设备,不属于则宕机,属于则根据系统关键设备列表中的相应描述,去寻找这个磁盘控制器所对应的驱动服务; (2)如果找不到这个磁盘控制器所对应的驱动服务,则宕机,找得到则根据驱动服务中规定的驱动文件,去寻找这个磁盘控制器所对应的驱动文件; (3)如果找不到驱动文件,则宕机,找得到则使用此驱动控制磁盘控制器。 这是个连贯的过程,哪一个环节出现问题,最终的结果都是宕机。 (三)INF阅读术 阅读驱动的INF文件需要一定的经验积累,同样也需要一定的尝试和失败,所以我这里只能以制作封装用磁盘控制器驱动为目的的INF阅读方法。 以下我以INTEL AHCI磁盘控制器驱动为例介绍,INTEL的驱动写的标准且简介,而且INTEL驱动本身是最为稳定的,建议新手练手时选取INTEL的驱动。 1、读出驱动所属类 01.[version] 02.CatalogFile=iaAHCI.cat 03.Signature="$WINDOWS NT$" 04.Class=hdc 05.ClassGuid={4D36E96A-E325-11CE-BFC1-08002BE10318} 06.Provider=%INTEL% 07.DriverVer=06/04/2009,8.9.0.1023 [/code version段一般在驱动INF的开头处,Class即为本驱动所属类,而ClassGuid是这个类的GUID。驱动所属类是个重要的信息,在我们制作封装用磁盘控制器驱动的系统关键设备部分有着很重要的地位。 2、读出哪些硬件ID对应本驱动,而每个硬件ID又使用了哪个驱动服务 这一般需要去读两个段,一个是: 复制代码 [code] 01.[Manufacturer] 02.%INTEL%=INTEL_HDC,ntx86 Manufacturer段规定了如下哪个段是用来记录驱动描述、所用服务、驱动ID的。“INTEL_HDC”是主段名,“,”后面的是附加段名。例如在这个描述中,如下可能有两个段包括驱动描述、所用服务和驱动ID信息:INTEL_HDC段,或INTEL_HDC. ntx86段。 INTEL的磁盘控制器是一体化的驱动,从XP到WIN7用的驱动是相同的,所以它的Manufacturer段的内容比较简单。有些驱动针对不同系统是分开的,可能会有针对XP和WIN7的不同设置,请根据实际情况进行应变。 另一个需要我们阅读的段十分重要,这个段也是由Manufacturer段规定出来的 01.[INTEL_HDC.ntx86] 02.%PCI\VEN_8086&DEV_2681&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_2681&CC_0106 03.%PCI\VEN_8086&DEV_27C1&CC_0106.DeviceDesc% = iaStor_Inst,PCI\VEN_8086&DEV_27C1&CC_0106 04.%PCI\VEN_8086&DEV_27C5&CC_0106.DeviceDesc% = iaStor_mobl_Inst,PCI\VEN_8086&DEV_27C5&CC_0106 05.%PCI\VEN_8086&DEV_2821&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_2821&CC_0106 06.%PCI\VEN_8086&DEV_2829&CC_0106.DeviceDesc% = iaStor_mobl_Inst, PCI\VEN_8086&DEV_2829&CC_0106 07.%PCI\VEN_8086&DEV_2922&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_2922&CC_0106 08.%PCI\VEN_8086&DEV_2929&CC_0106.DeviceDesc% = iaStor_mobl_Inst, PCI\VEN_8086&DEV_2929&CC_0106 09.%PCI\VEN_8086&DEV_3A02&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_3A02&CC_0106 10.%PCI\VEN_8086&DEV_3A22&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_3A22&CC_0106 11.%PCI\VEN_8086&DEV_3B29&CC_0106.DeviceDesc% = iaStor_mobl_Inst, PCI\VEN_8086&DEV_3B29&CC_0106 12.% @8 N%PCI\VEN_8086&DEV_3B2F&CC_0106.DeviceDesc% = iaStor_mobl_Inst, PCI\VEN_8086&DEV_3B2F&CC_0106 13.%PCI\VEN_8086&DEV_3B22&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_3B22&CC_0106 “=”前的部分是关于这个驱动的文字描述,我们可以在INF的String段里看到,不过这个对我们制作封装用磁盘控制器驱动基本没什么作用。 “=”后的部分,“,”前是针对本硬件ID哪些段对它进行了处理,例如“iaStor_Inst”,如下各段中凡以此开头的,都是针对本硬件ID的处理,包括为本硬件ID添加哪个服务。 ( i“=”后的部分,“,”后是磁盘控制器的硬件ID,如“PCI\VEN_8086&DEV_3B29&CC_0106”。 这些磁盘控制器的硬件ID将在随后被我们添加到封装用磁盘控制器驱动的系统关键设备中,而它们所对应的服务将是我们下一步阅读的目标。 3、读出硬件所对应的服务。 在刚才的INTEL_HDC.ntx86段中,我们获得了本驱动可支持的硬件ID列表,现在我们要把这些ID对应的服务找出来。例如: %PCI\VEN_8086&DEV_3A22&CC_0106.DeviceDesc% = iaStor_Inst, PCI\VEN_8086&DEV_3A22&CC_0106 规定了PCI\VEN_8086&DEV_3A22&CC_0106的各类操作由iaStor_Inst相关段决定,那我们就去寻找iaStor_Inst的相关段,直到找到: 01.[iaStor_Inst.Services] 02.8 N9 v3 ]6 f; K. zAddService = iaStor, %SPSVCINST_ASSOCSERVICE%, iaStor_Service_Inst, iaStor_EventLog_Inst 本段中决定要添加一个服务(AddService),名为“iaStor”,添加方法由“iaStor_Service_Inst”段决定,添加的事件日志由“iaStor_EventLog_Inst”段决定。随后我们找到“iaStor_Service_Inst”段。 复制代码 01.[iaStor_Service_Inst] 02.DisplayName = %*PNP0600.DeviceDesc% 03.ServiceType = %SERVICE_KERNEL_DRIVER% 04.StartType = %SERVICE_BOOT_START% 05.ErrorControl = %SERVICE_ERROR_NORMAL% 06.ServiceBinary = %12%\iaStor.sys1 j J- Z* C" E- S; E 07.LoadOrderGroup = SCSI Miniport 08.AddReg = iaStor_parameters_AddReg DisplayName,服务的显示名,这对我们制作封装用磁盘控制器驱动没太大关系。 ServiceType,服务的类型,这里是“内核级驱动”。 StartType,服务启动类型,这里是“随系统启动”。 ErrorControl,报错类型,这里是“一般性报错”。 ServiceBinary,这个其实是驱动文件的位置,%12%代表System32\drivers,则完整驱动文件路径为“System32\drivers\iaStor.sys”。 LoadOrderGroup,驱动所属的组。 AddReg,这一般是为本服务额外添加的注册表键和键值。 通过阅读这些,我们知道了硬件ID为“PCI\VEN_8086&DEV_3A22&CC_0106”的设备所需服务的基本概况,特别是我们得知了这个驱动服务所加载的驱动文件名称及位置。以此类推,解决其他的硬件ID。 从INF里读到了这些信息,我们就可以着手制作WIN7的封装专用磁盘控制器驱动了。 (四)制作封装专用磁盘控制器驱动 制作封装专用磁盘控制器驱动其实就是一个将INF转成REG的过程,曾经有过这种工具,但我个人并不建议大家使用。如果使用者并不明白INF转REG的真正原理,就很难了解这项技术的真正内在本质,更难于在出现问题时能够独立解决,这个技术的公共交流带来了很多不便。本节内容我会和大家一起亲手将INTEL AHCI磁盘控制器驱动的INF转成封装用的REG文件,以让大家更加了解这项技术的本质。 上文中,我们已经介绍了INF阅读的基本方法,下面我们来对INF进行一下转化。 1、系统关键设备部分 这部分的注册表键和键值遵守如下样式: 01.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\(硬件ID)] 02."ClassGUID"="(类的GUID)" 03."Service"="(对应的服务名)" 硬件ID,读取自INTEL_HDC.ntx86段,例如“PCI\VEN_8086&DEV_2922&CC_0106” 类的GUID,读取自version段,“ClassGuid={4D36E96A-E325-11CE-BFC1-08002BE10318}” 对应的服务名,读取自INTEL_HDC.ntx86段,由“PCI\VEN_8086&DEV_2922&CC_0106”对应的iaStor_Inst段所派生的iaStor_Inst.Services决定服务名,为“iastor” 那么“PCI\VEN_8086&DEV_2922&CC_0106”的系统关键设备部分注册表应该写为: 01.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\ PCI#VEN_8086&DEV_2922&CC_0106] 02."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 03."Service"=" iastor " (注意硬件ID中的“\”变为“#”) 以此类推,将其他硬件ID的系统关键设备的注册表键和键值写完 2、驱动服务部分 分的注册表写起来比较容易,但要注意对应关系,即INF中的名字和REG中的名字不同。 回顾一下iaStor_Service_Inst段,依据此段写封装用磁盘控制器驱动的驱动服务时,不是所有的部分都需要,我将它简化一下: 01.[iaStor_Service_Inst] 02.ServiceType = %SERVICE_KERNEL_DRIVER% 03.StartType = %SERVICE_BOOT_START% 04.ErrorControl = %SERVICE_ERROR_NORMAL% 05.ServiceBinary = %12%\iaStor.sys 06.LoadOrderGroup = SCSI Miniport INF中带有“%%”的部分,在INF的String段有期对应的值,最简单的方法可以全文搜索一下两个“%”之间的内容,即会找到他们对应的值。如本例中,替换为值后为: 01.[iaStor_Service_Inst] 02.ServiceType = 1 03.StartType = 0 04.ErrorControl = 1 05.ServiceBinary = system32\drivers\iaStor.sys 06.LoadOrderGroup = SCSI Miniport 这些部分在注册表中分别对应: 01. INF中的ServiceType对应注册表中的Type; 02. INF中的StartType对应注册表中的Start; 03. INF中的ErrorControl对应注册表中的ErrorControl 04. INF中的ServiceBinary对应注册表中的ImagePath 05. INF中的LoadOrderGroup对应注册表中的Group。 而服务部分的一般样式为: 01.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\(服务名)] 02."ErrorControl" 03."Group"="" 04."ImagePath"="" 05."Start"= 06."Type"= 则我们转化后为: 01.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\iaStor] 02."ErrorControl"=dword:00000001 03."Group"="SCSI Miniport" 04."ImagePath"="system32\drivers\IaStor.sys" 05."Start"=dword:00000000 06."Type"=dword:00000001 这样,服务部分我们也搞定了。 3、驱动文件 差点忘记了,不要忘记把驱动程序文件“IaStor.sys”也提取出来,在执行系统封装时复制到“ImagePath”所规定的位置即可。 经过全部过程后,我们可以制作出来一份INTEL AHCI磁盘控制器的封装用磁盘控制器驱动了!这份驱动的注册表文件为: 01.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2681&CC_0106] 02."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 03.G"Service"="iaStor" 04.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_27C1&CC_0106] 05."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 06."Service"="iaStor" 07.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_27C5&CC_0106] 08."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 09."Service"="iaStor" 10.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2821&CC_0106] 11."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 12."Service"="iaStor" 13.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2829&CC_0106] 14.{"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 15."Service"="iaStor" 16.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2922&CC_0106] 17.[. r2 k! T"ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}"4 b- N+ I# x4 } 18."Service"="iaStor" 19.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_2929&CC_0106] 20."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 21."Service"="iaStor" 22.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_3A02&CC_0106] 23."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 24."Service"="iaStor" 25.- ^% ^4 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_3A22&CC_0106] 26."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 27."Service"="iaStor" 28.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_3B29&CC_0106] 29."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 30."Service"="iaStor" 31.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_3B2F&CC_0106] 32."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 33."Service"="iaStor" 34.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\CriticalDeviceDatabase\pci#VEN_8086&DEV_3B22&CC_0106] 35."ClassGUID"="{4D36E96A-E325-11CE-BFC1-08002BE10318}" 36."Service"="iaStor" 37.[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\iaStor] 38."ErrorControl"=dword:00000001 39."Group"="SCSI Miniport" 40."ImagePath"="system32\drivers\IaStor.sys" 41."Start"=dword:00000000 42."Type"=dword:00000001 至此,我们学会了制作封装用磁盘控制器驱动的方法。制作封装用磁盘控制器驱动需要长期的实践和总结,也需要经历无数的失败才能成就最后的成功!
|

Win7 封装深入研究教程《步步为营封 Win7》B
2009-12-06 00:19
二、驱动处理 (一)简介 封装前都会对封装用计算机(源计算机)中的硬件设备驱动进行处理。所谓处理,主要是卸载驱动,以及一些对驱动程序的调整等。 为什么要卸载源计算机的硬件设备驱动程序?理论上说,卸载源计算机的驱动不是必要的步骤,Windows本身就具有对硬件的即插即用能力,例如你添加一块网卡、更换一块显卡系统都会自动帮你搜寻适合的驱动并尝试安装。系统封装与部署技术是将源计算机中的系统封装后部署到其他计算机上,对系统来说并不认为是系统部署到了不同计算机中,而是发现了更多的即插即用设备,系统会为这些“多出来”的设备自动搜索与安装驱动。 但是事与愿违,只有实践才能检验理论。在实际的系统封装与部署中,由于硬件不卸载带来的一系列的小问题层出不穷。这些问题中有些的确是由于硬件商造成的,例如XP时代经典的声卡ID冲突问题;而也有一些也是由于Windows本身的功能造成的,例如出现“本地连接2”等。再加之每个用户都不想要一个“不干净”的系统,所以驱动处理逐渐的成为了必须要做的事情。 (二)原理 处理驱动程序不是什么难事,估计没有人不会卸载驱动与更改驱动。所以,在本文里我绝对不会和大家探讨怎么一步步的在设备管理器里点鼠标卸载驱动,这无异于浪费大家的时间和精力。我们要讨论的是怎么自动的卸载这些驱动程序,毕竟大家都喜欢双击一个程序解决一切问题的舒适感。今天我们要做的,就是要了解这种舒适感背后的技术。 每种硬件都有它们自己的ID,要查看硬件的ID很容易,如下图: 从图中可以看到,硬件不只有一个ID,一般来说一个硬件的硬件ID(HWID)会有1~4个。HWID就像身份证号一样独立标识着每类硬件,所以我们很容易的可以想到会存在一组硬件与HWID的对应关系列表。如何获得这个列表?打开注册表: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum6 可以看到其下的分类,打开某一个分类,例如Display,再选取下面的硬件子类,例如我计算机中的: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\BNQ76D9 打开后会发现其下有以设备编号命名的设备键,例如我计算机中的: HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum\DISPLAY\BNQ76D9\5&5db3def&0&UID268435459 这其实是我的BENQ显示器,显示器的标识是“5&5db3def&0&UID268435459”,我们来看一下“5&5db3def&0&UID268435459”下的子键,找到“HardwareID”键,它的键值即是我的BENQ显示器的HWID。 当然您的显示器不可能完全与我的一样,但您可以在类似的位置找到您显示器的HWID。如果您已经找到了,那么可以以此类推看看其他硬件的HWID。您会发现HardwareID键包括多个HWID键值,就像我们在设备管理器里看到的一样。这也就是说,我们可以通过注册表来获取本机所有硬件设备的HWID列表了! 说到这里您大概会有如下两个问题了: 1、我们有了HWID又能做什么?有HWID就能自动卸载驱动吗? 2、怎么获取这个列表,难道要我们手工一个个的复制粘贴吗? 下面我们来逐步解决这些问题,我们要用到命令行工具的操作基础和一定的AU3基础,如果您这两方面比较薄弱,那么建议先多学习一下这方面的知识再来学习如下内容。 三)DevCon.exe DevCon.exe是微软的可代替设备管理器的命令行工具。虽然是个命令行工具,但实际上讲,它有着比设备管理器更强大的性能。如果对此工具有更多兴趣,可以查阅微软官方支持: http://support.microsoft.com/kb/311272/zh-cn。01.devcon.exe [-r] [-m:\\ *本站禁止HTML标签噢* ] *本站禁止HTML标签噢* [ *本站禁止HTML标签噢* ...] 02.-r 如果指定它,在命令完成后若需要则重新启动计算机。 03. *本站禁止HTML标签噢* 是目标计算机的名称。 04. *本站禁止HTML标签噢* 是将要执行的命令(如下所示)。 05. *本站禁止HTML标签噢* ... 是命令需要的一个或多个参数。 06.要获取关于某一特定命令的帮助,请键入:devcon.exe help *本站禁止HTML标签噢* 07.classfilter,允许修改类别筛选程序。 08.classes,列出所有设备安装类别。 09.disable,禁用与指定的硬件或实例 ID 匹配的设备。 10.driverfiles,列出针对设备安装的驱动程序文件。 11.wdrivernodes,列出设备的所有驱动程序节点。 12.Venable,启用与指定的硬件或实例 ID 匹配的设备。 13.find,查找与指定的硬件或实例 ID 匹配的设备。 14.C- Sfindall,查找设备,包括那些未显示的设备。 15.Zhelp,显示此信息。 16.hwids,列出设备的硬件 ID。 17.winstall,手动安装设备。 18.Flistclass,列出某一安装类别的所有设备。 19.Kreboot,重新启动本地计算机。 20.xremove,删除与特定的硬件或实例 ID 匹配的设备。 21.rescan,扫描以发现新的硬件。 22.cresources,列出设备的硬件资源。 23.restart,重新启动与特定的硬件或实例 ID 匹配的设备。 24.stack,列出预期的设备驱动程序堆栈。 25.status,列出设备的运行状态。 26.update,手动更新设备。 手动更新设备,无用户提示 添加、删除和更改根枚举设备的硬件 ID 的顺序。 这的确是一个功能很多的工具,但今天我们只需要它的一个功能就可以了,毕竟我们只需要用DevCon.exe来卸载驱动。我们来看DevCon.exe的“remove”功能,此功能的语法是:复制代码 01.DevCon.exe remove [HWID] DevCon.exe的这个功能的主要目的,是移除使用本HWID的硬件驱动程序。即,我们只要知道设备的HWID,就可以通过DevCon.exe的命令行模式将其卸载。例如我们要卸载一个HWID为复制代码 复制代码 01.“PCI\VEN_1002&DEV_4393&CC_0104” 设备的驱动,则: 复制代码 01.DevCon.exe remove PCI\VEN_1002&DEV_4393&CC_0104 这为我们自动卸载驱动做了最好的铺垫。 (四)自动卸载5 自动获取HWID列表 既然我们只要有硬件的HWID就能卸载该硬件的驱动,那么我们现在就要想办法怎么弄到计算机中所有硬件的HWID列表了。前文已述,可以通过读取注册表的方法获取HWID,那么我们就可以通过AU3实现 复制代码 01.Func _DrvUnins_ReadHwids() 02. Local $HwidList[1][2], $p = 1 03. Local $RootKey = "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum" 04. Local $i = 1 05. While 1 06. Local $SubKey1 = RegEnumKey($RootKey, $i) 07. If @error = -1 Then ExitLoop 08. $SubKey1 = $RootKey & "\" & $SubKey1 09. Local $j = 1 10. While 10 W5 L" ~; {3 h3 e6 j" s8 f4 G 11. Local $SubKey2 = RegEnumKey($SubKey1, $j) 12. If @error = -1 Then ExitLoop 13. $SubKey2 = $SubKey1 & "\" & $SubKey2 14. Local $k = 1 15. While 1 16. Local $SubKey3 = RegEnumKey($SubKey2, $k) 17. If @error = -1 Then ExitLoop 18. $SubKey3 = $SubKey2 & "\" & $SubKey3 19. Local $Cls = RegRead($SubKey3, "Class") 20. ; 21. If $Cls <> "Mouse" And _ 22. $Cls <> "Keyboard" And _ 23. $Cls <> "System" And _ 24. $Cls <> "LegacyDriver" And _ 25. $Cls <> "Computer" And _ 26. $Cls <> "" Then 27. ReDim $HwidList[$p + 1][2] 28. $HwidList[$p][0] = $SubKey3 29. $HwidList[$p][1] = RegRead($SubKey3, "HardwareID") 30. $p += 1 31. EndIf4 C2 u% @ |6 K% I; Y3 h/ z 32. $k += 12 q \5 T6 O# E E3 W 33. WEnd 34. $j += 1 35. WEnd 36. $i += 1 37. WEnd 38. Return $HwidList 39.EndFunc ;==>_DrvUnins_ReadHwids 函数_DrvUnins_ReadHwids的目的,即是列举本机HWID列表。我做一下简单的说明: (1)本函数中通过三层循环,依次读取Enum键下的设备类、设备子类、设备信息,最终获取每个设备的HWID; (2)本函数最初创建一个$HwidList数组,随着读取工作的进行而逐步扩大数据量,$HwidList数组中保存的即为本机HWID列表; (3)在决定要读取某个设备的HWID之前,还要判定一下该设备属于哪类设备,通过读取设备信息键值下的Class键值实现;) (4)在Windows7下有5类设备没必要卸载,分别是PS2鼠标(Mouse)、PS2键盘(Keyboard)、系统设备(System)、系统遗留驱动(LegacyDriver)、硬件抽象层(HAL、或称计算机类型、或俗称电源管理)(Computer),所以只要设备属于这5类则不加入硬件ID列表。 (5)本函数的返回值为一个数组,数组内容即为本机HWID列表。 2、整理HWID列表 同类硬件有相同的HWID,例如两个相同的网卡,例如一个CPU的多个核心。HWID是定位到硬件类,而不是像网卡的MAC地址一样定位到每一个硬件,所以我们获得的HWID列表中很大可能性的存在相同的HWID。 虽然这些相同的HWID不会影响我们的驱动卸载质量,但我们没必要增加这额外的重复工作,所以我们有必要整理一下我们刚才获得的HWID列表。另外,由于我们刚才读取的HardwareID键值是一个“REG_MULTI_SZ”类型的键值,所以我们读取的硬件ID是这么一种形式: HWID1[换行符] HWID2[换行符]…… 所以我们在整理HWID之前必须将刚才的数据进行一定的转化。 复制代码 复制代码 01.Func _DrvUnins_TidyHwids($HwidList) 02. Local $tHwidList[1], $tp = 1 03. Local $i 04. For $i = 1 To UBound($HwidList, 1) - 1 05. Local $Hwids = $HwidList[$i][1] 06. If $Hwids <> "" Then 07. Local $tArr = StringSplit($Hwids, @LF) 08. If IsArray($tArr) And $tArr[0] > 1 Then 09. Local $j 10. For $j = 1 To UBound($tArr) - 1 11. ReDim $tHwidList[$tp + 1] 12. $tHwidList[$tp] = $tArr[$j] 13. $tp += 1 14. Next 15. EndIf 16. EndIf 17. Next 18. ;_ArrayDisplay($tHwidList) 19. Local $i, $j 20. For $i = 1 To UBound($tHwidList) - 2 21. For $j = $i + 1 To UBound($tHwidList) - 1 22. If $tHwidList[$i] <> "" And _ 23. $tHwidList[$i] = $tHwidList[$j] Then 24. $tHwidList[$j] = "" 25. EndIf 26. Next 27. Next 28. ;_ArrayDisplay($tHwidList) 29. Local $Hwids[1], $p = 1 30. Local $i 31. For $i = 1 To UBound($tHwidList) - 1 32. If $tHwidList[$i] <> "" Then 33. ReDim $Hwids[$p + 1] 34. $Hwids[$p] = $tHwidList[$i] 35. $p += 1 36. EndIf 37. Next 38. ;_ArrayDisplay($Hwids) 39. Return $Hwids 40.EndFunc ;==>_DrvUnins_TidyHwids 41. 42. 函数_DrvUnins_TidyHwids的目的是整理刚才我们获得的HWID列表,简单介绍一下: (1)本函数的第一个循环,将挤在一起的以换行符间隔的HWID转化成独立的; (2)本函数的第二个循环,通过遍历将重复的ID设置为空字符串 (3)本函数的第三个循环,将刚才整理过的HWID列表重新填入$Hwids,并跳过空字符串。 (4)本函数的最终目的是返回一个整洁的本机HWID列表。 3、自动卸载的执行 有了HWID列表,再根据刚才说的DevCon.exe的命令行卸载驱动的功能,我们可以写一个自动根据HWID列表调用DevCon.exe卸载本机驱动的函数了。 01.Func _DrvUnins_Unins($Hwids, $DevCon) 02. ProgressOn("驱动卸载", "正在卸载驱动...") 03. Local $i 04. Local $Max = UBound($Hwids) - 1 05. Local $per = 1 06. For $i = 1 To $Max 07. $per = Int($i / $Max * 100) 08. ProgressSet($per, StringReplace($Hwids[$i], "&", "&&"), _ 09. "正在卸载驱动... (" & $per & "%)") 10. RunWait($DevCon & " remove " & $Hwids[$i], "", @SW_HIDE) 11. Next 12. ProgressOff() 13.EndFunc ;==>_DrvUnins_Unins _DrvUnins_Unins简介: (1)本函数有两个形式参数,一个是本机HWID列表$Hwids,一个是DevCon.exe程序的所在位置$DevCon; (2)本函数通过枚举HWID列表中的每一个HWID来卸载驱动程序 (3)本函数无返回值,目的是写在本机所有驱动程序。 好了,有了这三个函数,再加上DevCon.exe的强大性能,我们完成了对本机驱动的自动卸载工作 (五)常见问题问答 1、为什么执行完毕后我在设备管理器里还是看到很多驱动没有卸载掉? 很多设备是正在被使用的,例如你的CPU、显卡,这些设备如果被卸载掉会直接造成一系列的问题,所以Windows对于这类设备的卸载有着特殊的方针。当硬件正在被使用时其驱动不可被卸载,但这些设备的驱动将在你重启计算机后自动卸载掉。所以无需担心这些设备的驱动。 2、保留PS2鼠标(Mouse)、PS2键盘(Keyboard)、系统设备(System)、系统遗留驱动(LegacyDriver)、硬件抽象层(Computer)设备驱动的目的是什么? (1)PS2鼠标和PS2键盘,这是没有必要卸载的,你见过谁的机器因为换了个PS2设备蓝屏或冲突吗?那为什么USB的键盘鼠标要卸载掉,这个问题比较难解释,一是很多USB键盘鼠标并不被识别为鼠标,而是被识别为人体学工程设备,在分辨上有些困难;二是某些USB键盘鼠标如果不被卸载,其残留的驱动在部署后对新接入的USB设备有影响(实践中发现的问题,具体原因不明)、 (2)系统设备,这是从XP时代就公认不用卸载的,经过历年实践的检验,完全可以放心。 (3)系统遗留驱动,这个翻译不是十分准确,LegacyDriver设备一般是以前安装过但现在并不在使用的,这类设备的存在不会影响系统部署的成功率。 (4)硬件抽象层(HAL),在上一章中已经叙述,Windows7的HAL只分为X86和X64两个版本,所以我们无需对HAL进行任何更改了。 3、为什么没有将PCI IDE控制器更改为“标准PCI IDE控制器”? (1)Win6.x这代系统对驱动认证更为严格,而且很多驱动不是你关闭认证就可以真不需要认证的,大家有兴趣可以试试。这为自动更改“标准PCI IDE控制器”行成了阻碍。 (2)更改“标准PCI IDE控制器”这个“行业标准”建立于遥远的XP封装最初时代,这么做的目的已经被传的没有其本意了。经过理论求证和实践操作,一定程度上证明这种更改是没有太大实际意义的,所以我个人一直倾向于将其卸载。大家可以再通过实践来进一步求证。! 4、这些代码是否完美? 我不能保证代码的完美性,理论上说这只是一种自动卸载驱动的实现途径,如果大家有兴趣完全可以研究更强大的。但这里必须说一句,不管您有什么想法和理论,必须有长期实践为其撑腰。 5、驱动卸载后我的分区看不到了? 硬盘的分区也是靠驱动来实现的,系统通过驱动看到每个硬盘分区,而如果你在卸载驱动时某个硬盘分区没有正在被使用,则该分区的驱动会立刻被卸载,那么你就看不到这个分区了。这是个很正常的现象,就像卸载声卡后看不到声卡一样,无需担心硬盘分区内的数据,你只是暂时看不到他们了而已。 6、手工卸载VS自动卸载? 如果你实践过本章的代码,你可以很清晰的发现设备管理器里所看到的设备不是当前系统里的所有设备,所以即使你手工根据设备管理器卸载驱动,那么你卸载的是全部驱动吗?当然,自动卸载也不是完美的,人写的程序总会有错误,程序只会按照人的既定思路去做事,不会变通,但不应以此就判定自动卸载是垃圾的,虽然程序是人写的就会有错误,但程序是人写的就可以通过人去完善! 7、驱动卸载要多干净? 之前已经说过,驱动卸载不是必要的过程,而是为了避免细微的问题。而在以往的经历中我发现很多人过于苛求驱动的干净了,很多人往往为了一两个所谓的“幽灵硬件”忧心忡忡,这其实是毫无必要的。 你可以尝试为你的计算机更换一块网卡,你立刻就会看到你前网卡的“幽灵硬件”。“幽灵硬件”这种说法迷惑了太多人,这其实是Windows的一种机制,目的是你再将这个设备换回本计算机时可以立刻启用,简化驱动搜索与安装过程。“幽灵硬件”是一个具有一定偏颇性的叫法,无需过于担心它们的存在,但也别过于放心,某些时候它们的确能引起莫名其妙的问题。 |

Win7 封装深入研究教程《步步为营封 Win7》A
2009-12-06 00:17
Win7 封装深入研究教程《步步为营封 Win7》 Win7 时代是一个崭新的时代,从这里开始,我们所有人又回到了同一起跑线上。无论您以前是高手还是菜鸟、接触或没接触过这门技术,从 Win7 开始我们都是从0开始。 《步步为营封 Win7》分为 6 章讲解 Win7 封装:[2楼]《步步为营封 Win7》引言 [3楼]《步步为营封 Win7》基础 [4楼]《步步为营封 Win7》驱动处理 [5楼]《步步为营封 Win7》磁盘控制器 [6楼]《步步为营封 Win7》初级部署控制 [7楼]《步步为营封 Win7》进阶部署控制 《步步为营封 Win7》循序渐进、由简到繁、图文并茂的逐步讲解Win7封装与部署技术,是您学习这项技术最好的教程。 诚然,我个人也无法保证这篇教程中的每个字都是正确的,但本教程的最终目的是打造一个共同交流技术的环境,形成最优的技术交流氛围,从而达到方便更多人的目的。 记住:从来就没有高手,只要用心,人人都是高 步步为营封 Win7》引言 WIN7 RTM发布已经有好几天了,其实我从最早VISTA时就研究过WIN6.X这一代系统的封装,之前又在WIN7 7264版本上实践过部分WIN7封装技术。想了很久,不想像以前那样只发个傻瓜化的工具给大家用,因为那样会使很多技术变得封锁起来,所以我决定写这篇教程。 这篇教程可能会分成很多章节,我会每隔1~3天更新一章,在这期间我会和大家一起一步步的完成对WIN7的封装,并和大家共同探讨这其中的问题,很渴望大家能积极参与。今天我只写了个引言,也算是我的一些感慨,不过我仍请大家细读一下这个引言,这将为我们今后一起研究WIN7封装打下良好的基础。 引言 虽然是引言,但是我仍请大家耐下心来阅读,我相信本文即使是引言部分也可以给您带来些许收获。 (一)现状! 傻瓜式工具最终造就了什么?本来制作各类智能化工具的初衷是提高工作效率、降低技术门槛以及减少不必要的人力物力消耗,但从实际情况看,并非是如此。 工具越来越智能,操作的选项越来越少,很多以前需要大量手工操作的事情现在变得按一下按钮一切搞定。诚然,这提高了工作效率,但也一定程度上的封锁了技术,降低了真正技术的交流。试问有多少人了解这一个按钮后面的真正技术?有多少人真的明白智能化工具究竟做了哪些事情?越来越少的人关心封装部署技术的核心部分,越来越多的人只追求封个系统了事,太多人习惯于浮于表面的所谓技术交流,太多人习惯于等待高手做出“按一个按钮解决一切事情”的工具。 如果有太多人依赖智能化工具,那将有太多人不明白这项技术的真谛,那会导致只有太少的人能进行这方面的技术交流。技术交流渠道越来越窄,技术水平发展速度越来越慢,技术层次越来越低,这样的结果又有几个人希望看到?本文立足于这个现状,借微软Windows7操作系统的发布,和大家一同探讨系统封装与部署技术。当然,由于Windows7是最新的操作系统,本文又写于Windows7刚刚发布之际,如文中有各种差错,还请大家谅解。 本文的最终目的,旨在让人人都能真正理解这项技术,从而逐步构造一个技术交流的氛围,最终打破现在“等工具,封装,等工具,封装”的现状,共同构筑大家的技术共享平台。 (二)封闭? 天空的最初原则就是开源,“技术开源传万世,共同革新同提高”是自由天空最初的口号,同样是最终的目的。但同样,我也不只一次的听别人说我们天空变质了,变得不乐于开放技术了,是吗?开源是什么,这里不多说,有兴趣多问问百度和谷歌。但我要强调的是,开源绝不是某些人认为的“开源就是可以随便拿走,稍加修改就可以说是我自己原创”! 天空写出的教程,被不良居心的人拿走,改改作者名即说教程中的滴滴汗水都是他们原创;天空研究的代码,被无德无知的人拿走,改几个变量名就说代码中的种种心血都是他们原创;天空整理的驱动,被无能无术的人拿走,复制粘贴一下就说那大量的时间和精力都是他们的原创!当这些人被追问时,他们经常反咬一口,“你们不就是开源吗?”、“开源不就是可以随便拿走吗?”、“网络不就是这样吗?”。诚心的请问你们真的懂什么是开源吗?试问各位天空论坛的老坛友,大家记得天空从创建到今天各种剽窃事件发生了多少起?而这次次事件又让天空寒透了多少回的心啊! 由于这些无德之辈的存在,我们无法全心全意的开放与交流技术,他们实在令我们每一个开源者无法敞开心扉和大家交流。最终是谁封闭了技术?大家心领神会吧。 (三)概念…… 如果基本概念搞不清楚,那么技术就会有倾斜;如果太多的基础概念搞不清楚,成就的技术绝不能称为技术。没有哪个数学家不懂一元一次方程的,没有哪个物理学家搞不清楚牛顿定律的,系统封装与部署也是一样。 1、什么是系统封装 我不想用官样的语言来描述这个概念,想必没人想看微软式的帮助——你读得懂每个字,就是看不明白说的什么意思。那么我就用最普通的方法来描述这个概念: 系统封装就是将系统打回到“准备状态”,从而可以部署至更多的计算机。 我们可以将A计算机中已经安装好了的Windows7进行封装操作,从而A计算机中Windows7重新进入了“准备状态”。而后通过微软官方映像工具(ImageX等)或者第三方映像工具(Ghost等)对A计算机中的Windows7进行备份,而后再通过这类工具将Windows7处于“准备状态”的映像恢复到B计算机中。而后Windows7在B计算机中开始执行部署过程。 A计算机中安装好的Windows7→封装→“准备状态”的Windows7→备份到→Windows7映像→恢复到→B计算机→B计算机中的Windows7开始部署→B计算机中安装好的Windows7。 系统封装是一种快速的将一台计算机中的操作系统快速的部署于多台计算机的技术,系统封装和部署过程中,很多系统设置会还原到最初值,所以部署到其他计算机中的系统可以一定程度上认为是全新的系统——当然,某些设置、软件的安装、补丁的安装、系统优化等还是保留的。 2、封装部署不是克隆 或许是使用到了Ghost,或许是早年部分人图方便直接使用了Ghost对系统进行克隆,让系统封装与部署莫名的背上了“克隆版”的黑锅,同样也被扣上了各种“不稳定”、“不如安装版”的不明不白的怀疑。 上文已述,Ghost只是一个映像工具,负责的仅仅是“将封装好的系统进行备份为系统映像”和“将系统映像恢复到其他计算机”这么一个工作,Ghost本身并未参与系统封装和部署的任何一个过程。如果你喜欢,还可以用ImageX、ATI等映像创建与恢复工具,不一定要用Ghost。所以,“克隆版”只是很多不明技术真相的人的一个很不专业的通称而已。至于封装部署的系统是否没有安装版稳定,个人感觉不是个需要讨论的问题。系统安装技术来自于微软本身,而系统封装与部署技术也来自于微软本身,自家兄弟的强弱与否貌似毫无争论的必要。 由于曾经存在过的各类改版系统采用了系统封装与部署技术,很多这种改版的制作者又对系统进行了各种精简优化操作、使用了不成熟的磁盘控制器驱动技术等,从而总是让封装部署版的系统带有相对“不稳定”的特性。这种不稳定完全由改版制作者的技术决定,与封装部署技术本身的稳定性毫无关系。 3、封装部署不是盗版 前文已经多次提到,系统封装与部署技术就是微软自家的技术,目的是提高系统安装速度、降低IT专业人士重复的机械操作。由于这项技术的这种优势和特性,使得很多计算机销售商乐于使用这种技术,毕竟不可能总是重复为每一台计算机安装系统、打补丁、装软件等机械过程,这会带来不必要的人力物力损失。 由于国内大部分人对操作系统版权意识的淡薄,而正版Windows操作系统的价格又居高不下,导致了不少人动了歪念头。例如经典的使用XP大客户版制成封装部署版,以盗版光碟或网络传播的方式散布盗版系统。盗版系统的制作者采用的正式封装与部署技术,因为这种技术最为方便,技术门槛也最低。正是这个原因,让很多人一想到系统封装与部署技术,立刻就联想到了盗版。但这是不公平的,也是没有任何理由的。 系统封装与部署技术是一项技术,这是一项可以方便你我他的技术。而有些人将这项技术用于了不正的途径,就像有人拿菜刀砍伤了人一样,砍伤人完全是行为人负责,难道与菜刀有关吗? 4、封装工具是什么 既然系统封装工具是微软的,那么我们现在常见的各种“封装工具”又是什么? 准确的说,现在网络间流传的“封装工具”绝大多数都是“系统封装辅助工具”。这些工具本身并不具有对系统进行封装和使系统进行部署的能力,系统封装和部署仍旧是依靠微软官方的工具。“系统封装辅助工具”的主要职责,是将平时需要手动配置的各种项目图形化和智能化、扩展系统部署的范围与适用性等。 这也就是说,“系统封装辅助工具”是辅助我们进行各种操作、扩展系统封装部署性能的工具,它们在执行过程中会调用微软官方工具执行具体项目。 (四)技术—— 我们要一起研究这项技术,Windows7是一个不错的开始,因为在Windows7面前我们都是一样的,我们又有了一个新的起点,我们都站在了相同的起跑线上。 研究技术最忌讳的事情: 1、掺入自己主观观念的技术。不要给自己的技术加入任何主观观念,要客观的看待任何问题,对任何技术的理解必须有理有据,不可主观臆断。 2、感觉自己很NB。半瓶子醋总是逛荡的,反倒是满瓶醋逛荡不起来。肚子里稍微有点东西请勿感觉自己牛,可知山外有山、人为有人,况且任何人但凡有一点比你强就是你的老师! 3、嘲笑新手。这反映了两个问题,第一,你绝不是高手;第二,心态浮躁。 4、过大的询问某个问题。提问时一定要细化问题,不能猛一下提个很“宽广”的问题。例如“谁来教我封装?”、“怎么自动封装?”、“SRS驱动怎么做?”等。这种貌似只有一句话很简单的问题,其中包含的小问题数绝对都在三位数以上。如果你这样提问,没有人回答你是很正常的,无需抱怨。 研究技术,一定要踏踏实实稳稳当当,切忌浮躁。提问前一定要自己先研究,没有失败经历的人绝不可能做成技术。而如果你要提问,则问题越是细化越是可以更快得到答案。 从来就没有高手,只要用心,人人都是高手! [1]《步步为营封WIN7》基本 一切都得从基础开始,只有懂得和掌握了最最基础的东西,才有可能撑起更多的上层技术。所以我们有必要了解用最基本的方法如何封装Windows7,从基本逐步延伸到高层。 (如下内容以Windows 7 RTM x86 简体中文旗舰版为例) (一)Windows7的安装 这里我不想长篇累牍的讲述如何如何安装Windows7,在此讨论系统封装部署的各位想必都会安装Windows7,在这里我想说几点在Windows7安装中需要注意的地方。 如果我们的硬盘是尚未使用的,如下图: 在尚未使用的硬盘上安装Windows7,分区时会有一些有趣的事情,如下图: 1、从Windows Vista开始的Win6.x这代系统(Windows7版本号为Windows6.1,其实和Vista一样属于Win6.x),在执行分区操作时只能创建主分区(如果是我个人技术问题请指正),我不明白为什么微软要这样设定。锁定只能格式化为NTFS如果尚可理解的话,只能创建主分区又是什么目的? 2、如果硬盘是尚未使用的,为Windows7创建分区时会自动创建一个100M的所谓“系统分区”,而Windows Vista SP2和Windows Server 2008 SP2都没有这种现象。这个分区默认是隐藏的,即Windows7安装好后是看不到的。经过仔细对比后发现这个100M的分区里盛放的是Windows7的一些启动相关文件(有兴趣进PE查看)。 我们暂且把这个100M的分区叫做“启动区”,安装系统的分区叫做“系统区”。一开始我感觉很新奇,后来回想一下XP时代其实微软就已经这样做了,只不过那时候没有现在完善而且不强制罢了。有兴趣的朋友可以试试,在未安装系统的硬盘上安装XP时分一个100M左右的C盘,然后把系统安装到D盘去,XP也会复制它的启动文件到C盘,而把系统文件装在D盘,这和Windows7的这种强制做法一致。 从XP到VISTA,包含启动文件的启动区和包含系统文件的系统区同在C盘,而Windows7则是单独划出一个100M的分区当做启动区以盛放启动文件,又将系统文件放置于其他分区。看到这里也发现没什么特别出奇的,只不过是分开放置了一下文件而已,就像Linux把/boot挂载到一个单独的分区一样。 到这里大多数朋友都看出来了,第一,这个100M的分区的实际意义并不是特别强大,而且由来已久,不是Windows7特有的;第二,这种把启动区独立出来的方法不方便封装后系统映像的备份与转移工作。既然如此,那么我们就自己划定分区吧,即不用莫名多个100M的分区,也不用为不能划分逻辑分区发愁。 使用其他硬盘分区工具操作(注意,强烈不推荐PQ和PM),分区后重新进入系统安装过程,如下图: 看到这个界面猛的熟悉了很多,这是我们最常见的分区模式,那就继续执行我们的系统安装操作吧! 稍等片刻后,系统安装完毕,如下图: Windows7安装好后,会启动一个OOBE过程,在这个过程里要输入各项系统设定。这里会强制用户输入一个全新的用户名,并根据这个用户名确定计算机名。Windows7默认是不允许使用Administrator进行登录的,而是使用刚才我们创建的那个用户。但实践证明,系统封装强烈推荐使用Administrator账户(原因后述)。 下面我们开启并使用Administrator账户,进入计算机管理界面: 打开Administrator账户的属性,将“账户已禁用”前面的对号去掉: 而后删除掉刚才创建的用户账户,如“SkyUN”: 这时会有一些提示,建议看一看,然后一路确定下去。用户账户调整完毕后如下图: 即计算机内只有Administrator和Guest两个账户,Admnistrator账户为启用状态。而后注销当前用户,注销后看到如下图界面: 选择Administrator登陆系统,进入用户桌面后,对系统简单调整后如下图: 到这里,我们就以系统封装为目的完成了对Windows7的安装操作,建议使用Ghost备份一下当前的系统,以备以后再次使用。 (二)Windows7的封装与部署 现在我们使用微软官方的系统封装工具执行一次封装,让大家看看最原始的封装方式是什么样子的。 Win5.x(2000/XP/2003)的系统封装工具都位于他们的系统光盘上,而Win6.x的系统封装工具都位于系统分区内。打开C:\Windows\System32\Sysprep文件夹,你就会看到Sysprep3.14版。 运行sysprep.exe,“系统清理操作”选择“进入系统全新体验(OOBE)”,选中“通用”;“关机选项”选择“退出”——如果您想直接重启或关机也可以选择对应选项,选退出是为了方便观察。 选项设定结束后,单击“确定”按钮,执行系统封装。sysprep3.14执行系统封装分为两步: 务必在封装时观察是否执行了这两步,sysprep3.14在Windows7下有一定的失败率(高于在Vista下的失败率),而且失败的原因莫名其妙,有时因为调整一下页面文件都会造成封装失败,很无语。 如果顺利执行完了这两个封装步骤,会看到Sysprep文件夹下生成一个封装成功的TAG文件: 其实到这里Win7的基本封装就结束了,重新启动计算机,我们看一下Windows7的部署过程: 1、更新注册表设置: 2、启动基本服务 3、安装设备驱动 4、应用系统设置 5、基本部署结束,重启计算机. 6、又进入了熟悉的OOBE,新建账户 7、使用账户登录进入桌面 这样,整个系统封装并部署的过程就完成了。大家可以发现原始的封装部署是一件十分简单的过程,而且操作并不复杂。 (三)基本封装部署问与答 1、为什么建议使用Administrator账户进行封装?: (1)如果我们使用普通账户进行封装,封装完毕部署后仍然会进入OOBE过程,仍然会要求我们新建一个账户,而且这个账户是不可以与我们之前封装所用的账户冲突的,这无疑形成了一种残留,或者说是冲突。 (2)普通账户下,虽然用鼠标双击某些程序可以直接运行,但使用自动化程序调用某些程序、在C盘下建立目录等操作时会有问题,有兴趣可以尝试一下,这对我们下一步的自动化封装部署形成了障碍。 (3)我们删除安装时创建的账户,而是用Administrator账户进行封装操作,这在程序执行上有很多便利。而且Windows7在封装部署后又会自动禁用Administrator账户,就像我们第一次安装系统时那样,在部署后的OOBE时再创建任何账户都不会与当前系统内的账户冲突,就像全新安装系统那样,很是干净。 2、Windows7封装还是否需要卸载驱动? 我没有在官方找到相关说明,但根据实际经验来看是需要的。至于为什么我没有在这次演示中卸载驱动,是为了给大家原汁原味的展示微软官方封装部署是个什么样子。 3、Windows7封装部署是否还需要额外的磁盘控制器驱动? 这个我可以很确定的说需要。很多偏颇的认识过于神话Windows7,几乎把Windows7吹成无所不能的,但实际绝非如此。: 诚然,Windows7集成了一定量的常用磁盘控制器驱动,可以暂时应付常见机型,但并不代表着Windows7不需要增补磁盘控制器驱动,更不代表着今后不需要添加磁盘控制器驱动!就像2001年时的XP,当时XP的自带驱动也几乎是无敌的,而在8年后的今天,没有额外磁盘控制器驱动的XP几乎是寸步难行的。 所以,磁盘控制器驱动的增补是必须的。 4、Windows7封装部署是否还需要针对硬件抽象层进行修改? 首先我们来了解一下什么是硬件抽象层(HAL),我们可以把HAL认为是一组类,虽然我们的计算机硬件配置千差万别,但都可以归为HAL中的一个类,例如XP时代单核心的计算机归为一类、多核心计算机归为一类等。 但到了Windows7(其实从Vista开始就已是如此),HAL被简化为只有两类,即x86的HAL和x64的HAL。所以我们无需再担心HAL的问题,我们只需要知道我们封装的是x86还是x64的系统就可以了。 关于Windows7的基本封装与部署就介绍到此,希望能给大家带来帮助和启发。篮球天才也得每天练习最基本的运球和投篮,记住这句话。 |