利用SMS实现操作系统的补丁分发
杜 飞
微软的每个操作系统都会不断的推出新的补丁,如Win2000的补丁达到SP4,XP的补丁达到SP3,Win2003也达到了SP2。那么做为一个IT管理员对员工的操作系统及时进行补丁升级也是一个日常工作。今天咱们就来看一下如何利用SMS实现操作系统的补丁分发,也就是大规模的补丁升级。
各个补丁的升级过程几乎是相同的,我们在此就以Win 2003 SP2补丁为例,为企业中所有的Win2003 企业版机器分发SP2补丁,实验环境如图所示:
大家一看图就明白了,我们的任务就是希望为企业中的Win2003机器升级SP2补丁。
步骤1:创建一个新的集合,用于存放所有的Win2003操作系统的机器
在此图中所用到的三台成员服务器,全部都是Win2003 SP1。所以我们可以把这三台机器放到一个新的集合中。创建集合的方式很多,如果计算机数量比较少的话,我们可以手动增加,但如果计算机数量较多的话,我们就可以利用一些条件进行过滤。如我们就希望把Win2003的机器加入到一个新的集合中,我们的方法如下:
创建select 查询:
我们在SMS机器上创建一个文本文件,名称:win2003sp2.mof,内容如下:
文件内容如下:
[SecurityVerbs(140551)]
instance of SMS_Query
{
Comments = "All Windows Server 2003 sp1 to upgrade to SP2";
Expression="select SMS_R_System.Name, SMS_R_System.SMSInstalledSites, SMS_G_System_OPERATING_SYSTEM.Caption, SMS_G_System_OPERATING_SYSTEM.CSDVersion from SMS_R_System inner join SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceID = SMS_R_System.ResourceId where SMS_R_System.OperatingSystemNameandVersion like \"% Server 5.2\"";
LimitToCollectionID = "";
Name = "Computers ready for Windows 2003 SP2 Upgrade";
QueryID = "";
TargetClassName = "SMS_R_System";
};
导入查询
当我们创建完查询语句后,就可以在SMS管理工具中导入它。方法如下:
点击查询----所有任务----导入对象,如图所示:
然后确定所需要导入的MOF文件的路径及文件名,如图所示:
点击下一步后,出现下图所示:
点击完成!
确定导入是否成功,刷新“查询”后,我们来查看查询中的条目,会发现多出一个查询:
多出的这个查询,名称为:Computers Ready For Windows 2003 sp2 Upgrade,这就是我们利用SELECT语句所导入的查询。
运行查询
下面我们要来看看这个查询是否能正确的列出我们想要的计算机集,如图所示:
运行查询后,我们会看到我们想要的计算机信息:
创建新的计算机集合:
既然我们的查询是正确的,那么我们就可以借助这个查询来创建一个新的计算机集合了,这个集合中的计算机就是这个select语句所显示的对象,方法如下:
点击集合----新建集合----输入名称:Win2003_sp2
然后我们切换到成员身份规则,点击:利用查询获得对象信息,如图所示:
点击查询后,我们再点击导入查询语句,如图所示:
在这个图示中,我们需要输入查询规则的名称,导入我们刚才所创建的查询之后,点击确定。即可完成集合的创建,结果如图所示:
步骤2:创建补丁分发
集合创建成功后,我们就可以针对此集合来创建补丁分发,其实补丁也是一个程序文件,所以我们完全可以按照以前分发软件的方法来进行分发,只是我们原始下载的补丁文件是一个自解压的可执行文件,所以我们在使用之前必须先解压才使用,其中程序文件是i386\update\update.exe,并且可以通过加参数:/quiet /passive 实现无人值守的升级操作。此方法不再累述!
我们今天SMS的软件分发向导来完成补丁的分发操作,其实这个向导所实现的过程和我们前面所说的一般软件的分发是一样的,只是微软做成一个向导,指引管理员进行操作,更人性化一点而已,具体操作如下:
先解压Win2003 SP2的补丁,解压到SMS服务器上,如图所示:
解压缩成功后,我们的程序文件,也就是执行升级过程的文件是i386\update\update.exe文件,如图所示:
了解了这么多,我们就开始创建软件分发了,方法如下:
我们在刚刚新创建的集合:Win2003_sp2上右击----所有任务-----分发软件,如图所示:
此时,会弹出一个向导:
点击:下一步后,继续
现在没有我们所需要的数据包,所以我们来创建一个新数据包和程序:
输入完相关的参数后,点击下一步,继续:
我们需要从刚才解压的文件夹中读取补丁文件,所以选择:始终从源目录获取文件,如图所示:
指定补丁文件的存放路径,继续:
选择分发点服务器后,点击下一步,继续:
指定程序文件,在此可以通过加上参数 /quiet /passive 来实现无人值守升级,也可以直接指定update.exe,实现用户参于的安装。
在此是指运行此程序的用户权限,管理员是肯定有权限的,所以在此使用管理员。当然如果你确定某个程序,普通用户也可以运行,那么也可以使用普通用户权限运行!如果指定了无人值守,那么这里的用户交互就不需要了!如果希望运行之后,我们在此希望看到操作界面,所以允许用户交互!
在此选择:播发此程序!
要播的程序就是我们刚才创建的Win2003_sp2,然后下一步:
播发名称,我懒得改了,就使用默认了!
在此选择此程序的应用集合!
设置程序播发时间:应该是比当前时间要晚一些时间!大约10分钟以后为佳!
默认情况下是客户机请求复制或运行,但如果在指定时间内客户机没有进行文件复制或程序运行,那么可以设置一个分配时间,当到达该时间时,如果发现客户机没有响应,则该程序会自动运行!OK,到此为止,所有设置终于结束了!默认设置是此程序会直接从分发点运行,我们可以改为下载到客户端再运行,设置如下:
最后还有一个需要注意的就是客户端的临时文件所占用的磁盘空间一定要大于数据包的容量,否则也会导致播发失败!
好了,万事俱备,只欠测试了!
客户端测试:
我们现在到客户机上“守株待兔”,只要时间一到,就会自动进行文件的下载,这时你会看到,网卡和硬盘的指示灯不停的在闪。此时就开始复制文件了,复制成功后我们查看临时文件夹,如图所示:
我们会看到已经将所有SP2补丁文件复制到了本地磁盘上,文件复制完成后,在客户机的右下角会出现,如图所示的提示:
此时用户可以手动运行此程序,否则,到达指定时间后,会自动运行,如图所示:
点击运行,出现下面的向导,如图所示:
点击:下一步之后就开始了Server Pack 2的升级了,具体升级的过程就不再累述了,如果顺利就可以看到下面这个画面:
计算机重新启动后,我们就可以看到我们的系统已经成功打上了SP2的补丁了,如下图所示:
我的天呀,历经千辛万苦终于看到我们了这个久违的界面,累死我了,休息,休息一会。。。。。
本文转自 dufei 51CTO博客,原文链接:http://blog.51cto.com/dufei/236471,如需转载请自行联系原作者