您的位置:首页网页设计经验技巧 → 如何制作自己的Windows Service

如何制作自己的Windows Service

时间:2004/11/7 2:48:00来源:本站整理作者:蓝点我要评论(0)

    作为一个Windows 系统的管理员,安装安全HotFix应该是不会陌生的,每次我们在装完一台机器后总是下载无数补丁,但烦人的是每每安装一个HotFix系统都会Reboot一次,当然,在Reboot前我们不点击"确定"按钮,直接安装完其他的补丁后一次Reboot也未尝不可,但是这样似乎显得有点不大专业,今天我教大家作一个自己的Service Pack,可以把你需要安装的补丁在一次安装完毕,好像很Cool哦~


为了测试,我选择了一台中文版Windows 2000 Server,而我们需要安装的安全补丁为2个(当然不止这些,打个比方而已),一个是Windows 2000的输入法漏洞的补丁(Q270676),一个是命名管道的补丁(Q269523)。


跟着我一起来作吧:


1、下载我们需要安装的HotFixs,http://download.microsoft.com/download/win2000platform/Patch/Q269523/NT5/CN/Q269523_W2K_SP2_x86_CN.EXEhttp://download.microsoft.com/download/win2000platform/Patch/q270676/NT5/CN/Q270676_W2K_SP2_x86_CN.EXE


2、切换到CMD模式,在C盘创建一个hotfix的目录,然后执行


Q269523_W2K_SP2_x86_CN.EXE /x(建议解包的顺序按Q号的大小排列,由小到大,理由我会在后面提到)
看到要求输入解包路径的提示后输入"C:\Hotfix"。


C:\>cd hotfix


C:\hotfix>dir
驱动器 C 中的卷是 C
卷的序列号是 AC58-F7F5


C:\hotfix 的目录


2001-05-04  04:00      

          .
2001-05-04  04:00                 ..
2000-08-14  18:57               98,064 hotfix.exe
2000-08-14  18:57               15,139 hotfix.inf
2000-08-14  17:19              835,856 kernel32.dll
2000-08-14  17:19               85,776 services.exe
2000-08-14  18:31               88,245 sp2.cat
2000-08-14  18:57                3,584 spmsg.dll
2001-05-04  04:00                 symbols
2001-05-04  04:00                 uniproc


然后我们将hotfix.inf文件复制一份。
C:\hotfix>copy hotfix.inf q269523_cn.inf
已复制         1 个文件。


紧接着我们将第二个HotFix解包,
Q270676_W2K_SP2_x86_CN.EXE /x
看到要求输入解包路径的提示后输入"C:\Hotfix"。
也将此时的hotfix.inf文件复制一份。
C:\hotfix>copy hotfix.inf q270676_cn.inf
已复制         1 个文件。


第三个、第四个........重复同样的操作。


3、此时我们已经将HotFix的文件都解包至C:\Hotfix目录,并且有了各个HotFix的inf文件的拷贝,我们现在来分析这些inf文件,一般我们把最后解包的inf文件作为模板,因为inf文件分很多字段,从我观察的结果来看,随着时间的推移,inf文件的字段可能会增加,这也就是我们开始解包按Q大小顺序的原因,本例中我们以Q270676的inf文件为模板,我们编辑hotfix.inf文件,这个文件已经包含了Q270676的信息,我们只要把Q269523中的信息添加到该文件中即可,下面我们来分析Q269523的inf文件的内容:


前面的大部分基本都是相似的,我们只搜寻一些与众不同的字段。


[MustReplace.System32.files]
SERVICES.EXE
[CopyAlways.DriverCab.files]
kernel32.dll
[Cache.files]
SERVICES.EXE
KERNEL32.DLL
[Uniprocessor.Kernel.files]
KERNEL32.DLL,UNIPROC\KERNEL32.DLL
[Multiprocessor.Kernel.files]
KERNEL32.DLL
[SourceDisksFiles]
SERVICES.EXE=1
UNIPROC\KERNEL32.DLL
KERNEL32.DLL=1


然后我们在hotfix.inf文件中搜寻MustReplace.System32.files,然后加入一行
SERVICES.EXE
为了以后方便,我们一般加上一些注释,编辑后的hotfix.inf文件的MustReplace.System32.files字段就成了下面这个样子:


[MustReplace.System32.files]


;Q269523  Added by Adam
    SERVICES.EXE


接着搜寻CopyAlways.DriverCab.files、Cache.files、Uniprocessor.Kernel.files、Multiprocessor.Kernel.files、SourceDisksFiles,并将相应的信息添加到hotfix.inf文件中,也要注意添加必要的注释文件,inf文件中表示注释的符号为分号。当然,我们也建议您把本身的模板文件中必要的项也作一下注释,如2个hotfix都包含的Cache.files,我们修改后就成了:


[Cache.files]


;Q269523  Added by Adam
    SERVICES.EXE
    KERNEL32.DLL


;Q270676  Added by Adam
    winzm.ime
    winsp.ime
    winpy.ime
    wingb.ime
    winabc.ime


实际上,到这一步,我们就已经可以用我们作好的东东了,但是为了以后的方便,我们必须修改一些显示信息,这就是inf文件中的Strings字段。我们到inf文件的最末尾可以看到Strings字段,我们必须在这里修改一些必要的信息。


首先修改Q号(不是OICQ号码哦),将Q号改成你喜欢的6位数,当然,输入其他字符也可以,但是也许会和某些查HotFix的软件有冲突,还是用6位数字好了,然后修改Comments,我们把Q269523的Comment粘贴过来,也可以加上一些自己的描述,修改后的Strings字段就成了下面的样子:


[Strings]


    LangTypeValue=4
    ServicePackSourceFiles="Windows 2000 Hotfix 源文件"
    HOTFIX_NUMBER="Q123456"
    SERVICE_PACK_NUMBER=1
    COMMENT="Windows 2000 Hotfix (Pre-SP2) [See Q270676 for more information] This Fix Corrects the IME Problem...Windows 2000 Hotfix (Pre-SP2) [See Q269523 for more information] This Fix Corrects the NamePipe Problem..."


这样也方便我们日后对已安装的补丁进行查看。


4、好了,该修改的地方我们已经弄完了,我们开始安装我们自己作的Service Pack吧,其实我们只要执行HotFix.exe即可,它会自己去找inf文件,然后你会看到一个拷贝文件的进度条,接着是系统要求你Reboot,点"确定",重启,我们的HotFix就安装完毕了。


5、最后我们可以看看效果,你可以去看看注册表:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix


你会发现你安装的Q123456乖乖地呆在那里了~很有成就感哦~


最后总结一下:每每出一个新的HotFix后,你就将文件添加到你的SP包中,然后修改你的inf文件,你就可以不去理会微软是不是还为你发布新的SP了(NT 4的SP 7没有了),当然,SP中不光包含安全补丁,对系统的其他方面也有所改善,土八路毕竟还是比不上正规军的。 


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 Wordpress本地安装教程dx1.5如何设置二级域名

最新文章 hbuilder有哪些快捷键Wordpress本地安装教程 Wordpress本地安装教程expression web 4文档乱码解决方法dz 2.5“收藏本版”关闭小对话框无法关闭解在制作安装软件之前,您必须先将易语言存盘,

人气排行 如何使用multipart/form-data格式上传文件Photoshop PS图层混合模式详解(非常详细)ISAPI_Rewrite3使用教程网站里添加收藏和设为首页代码桌面快捷方式图标不见了C#获取执行程序所在的当前路径的方法详解(XMLHttpRequest)进行跨域请求方法如何用远程桌面连接进行传输文件