当商用计算机遇到必须重新启动才能生效的更新


笔者前几天在微软新闻组看到一篇帖子,咨询如何令面向客户的商用计算机 在安装某些必须重启才能生效的系统更新时不弹出确认重启的对话框,以便不让这个对话框干扰客户的正常使用。虽然笔者先后提供了一些建议,但由于这位提问者 描述的计算机实在太“商用”了,最终也没能完美解决。安装某些系统更新时必须重启、商用计算机工作时不能重启,这似乎是一对永远也无法调和的矛盾。
 
为什么某些 Windows 系统更新在安装时必须经过重新启动才能生效呢?这主要是由于需要升级的系统文件当前正在被操作系统使用,缺少相应的系统文件将立即引起 Windows 的崩溃,因此唯有关闭 Windows 并重新启动,在重启的过程中完成相应系统文件的升级。例如,本月(2009 年 6 月)发布的 MS09-025(KB968537)就属于这样的更新,涉及到 Windows 内核文件的升级必须要重启。相反地,另外一些需要升级当前可能没有被使用的系统文件的更新在安装时可能就不需要重启,例如本月发布的 MS09-022(KB961501),假如我们当前并没有开启 Windows 后台打印服务,安装此更新时可能就不需要重启。
 
正是由于某些更新安装时必须要重启,为了防止重启可能引起的数据丢失, 更新程序在重启前都会弹出确认对话框以提醒用户。一旦对话框弹出,就有可能干扰到商用计算机正处于前台的应用程序,令正在使用前台应用程序的客户(例如正 在操作银行 ATM 机的客户)或非计算机专业人士(例如不太懂计算机的大爷大妈年龄段的工作人员)不知怎么办好。为了避免这样的困扰,我们应当尽量避免商用计算机在工作时弹 出重启确认对话框。这可以参照如下几种情况处理:
 
1.以本地安装的方式安装更新:
 
假如我们安装更新程序的方式是手动从微软网站下载安装文件并保存于本地 (.MSU 或 .EXE 文件),然后人工执行安装,那么可以以命令行的方式添加 -QUIET -NORESTART 两个参数进行。-QUIET 表示以不需人工干预的静默方式执行安装;-NORESTART 表示如果更新需要重启时暂不重启。这样就可以不声不响地安装这个更新,等到工作时间过后再手动重启了。注意 -NORESTART 参数需要 -QUIET 参数的配合才可以生效、单独使用没有意义。
 
这种方法比较适合于办公室里的一两台的公用计算机。例如今天早上我发现 微软发布了 6 月安全公告并手动下载了相应更新的安装文件,可以以 -QUIET -NORESTART 的方法先把它们安装上、但不重启,白天这台计算机的工作都不会受到重启的影响。等到下班时把计算机关掉,明早重新开机时,这几个需要重启的更新已经安装完 毕了。
 
2.以 WUAU 或 WSUS 方式安装更新:
 
本地安装的方式毕竟有些繁琐,因此很多人选择了开启 WUAU 本地自动更新。对于计算机数量较多的企业而言,部署 WSUS 也是一种明智的选择。不过,以 WUAU 或 WSUS 方式安装更新无法应用 -QUIET -NORESTART 参数,这两个参数是本地安装方式专用的,目前也没有扩展 WUAU 或 WSUS 的方法。如果我们已经通过 WUAU 或 WSUS 的方式启动了需要重启的更新程序的安装,那么这个更新的重启对话框就将无法避免。组策略中虽然有一项“计划的自动更新安装后不自动重启”,但也不能完全阻 止对话框的出现,区别仅仅是此策略启用时询问用户是否立即重启、此策略被禁用时通知用户五分钟后自动重启而已。这两种类型的对话框都将干扰商用计算机的前 台程序。
 
所以,如果我们不打算让商用计算机的前台程序受到任何的干扰,唯有令 WUAU 或 WSUS 暂不启动更新的安装,而是只下载更新、延后执行安装。我们可以在组策略的“计算机配置”-“管理模板”-“Windows 组件”-“Windows Update”中设置“配置自动更新”,然后选择其第四项“4.自动下载并计划安装”并设置一个工作时间外的计划时间。这样在工作时间段内,WUAU 或 WSUS 就将只在后台获取更新、但暂缓安装。只要安装没有执行的话,商用计算机的前台就不会有任何提示;等到进入非工作时间,再根据计划的时间统一安装更新并重 启。
 
3.无休息式 7×24 小时商用计算机:
 
无论是本地安装还是 WUAU 或 WSUS,之前所说的两种方法都只是将更新重启的时间延后至非工作时间。但我们知道有很多商用计算机是 7×24 小时无休息的,它们可能每天、每周甚至每月只有一次宝贵的重启的机会。笔者在新闻组中遇到的那个问题就是应用了 WSUS 的 7×24 小时的银行 ATM 机,这些 ATM 机只在每天凌晨三四点钟用户比较稀少的时候可以有一次重启的机会。但是即便将“计划的自动更新安装后不自动重启”设置为启用、即便设置的计划时间是凌晨三 四点钟这个时段,ATM 机也依然会遇到问题。
 
根据这位仁兄的介绍,ATM 机的触摸屏程序默认是全屏并处于前台的,它可以判断用户是否已经取走了他的银行卡,如果 ATM 机内依然有卡,触摸屏程序可以阻止寻常的 ATM 机关机,但无法阻止更新重启对话框抢占前台对自身的影响,而 WSUS 又无法判断用户是否已取卡,这样就容易引起问题。例如,假设一位半夜不睡觉的夜猫子用户恰好在凌晨三四点钟来取钱,在银行卡没取走的时候遇到 WSUS 计划重启,ATM 机的触摸屏程序在重启对话框出现后将被迫转入后台,此时用户无法继续触摸操作,只能选择令更新程序重启。但重启后,重新运行的 ATM 机触摸屏程序将无法吐卡。因为银行有规定,重启时用户可能会离开现场寻求帮助,为了防止他人盗卡所以禁止吐卡。这时这位夜猫子用户可以说是叫天不应、叫地 也不灵了,即使去找银行的工作人员求助,也必须等上几个小时,待天亮银行上班后才行。
 
笔者看完这位仁兄的叙述感觉系统更新程序与 ATM 机触摸屏程序都需要改进。系统更新程序假如能不弹出抢占前台的对话框、而是只在任务栏通知区域等地方提示,就不会引起 ATM 机触摸屏程序的失效;ATM 机触摸屏程序如果能始终强制在前台显示,将所有弹出对话框遮挡于后台,就像 Windows 任务管理器一样,也可以阻止自身被重启对话框抢走前台显示。不论哪一方能“谦让一步”或“强硬一点”,这个问题都可以解决。总之这个问题目前似乎没有什么 太好的解决方法,目前只能寄希望于系统更新程序或 ATM 机触摸屏程序有所改进。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3