如果要问系统管理员最痛恨的事情是什么,我敢打赌,99%的回答不是遇到棘手的问题,也不是遇到莫名其妙的情况,而是给那些该死的 Windows 系统服务器打补丁——一个一个又一个,一台一台又一台,一遍一遍又一遍……生生不息、永无止境。

不要告诉我有 WSUS 这个玩意,我知道。这个鬼东西和域控制器建在一起,那简直就是地狱。至今我依然不记得在同一台服务器上应该先安装 WSUS,还是先搭建域控制器。总之它们俩必定有一个先后顺序,不然会影响对方——我很佩服微软,真的。

幸好伟大的 M$ 公司还有一个玩意叫做批处理脚本。下面这个脚本用于批量补丁,可以帮助系统管理员节约时间,减少白头发:

FOR %%i IN (*.EXE) DO %%i /passive /norestart /nobackup 脚本需要放在那一堆补丁中间,就像羊群中的狼一样。另外参数也可以根据实际情况调整。

前几天在一台 Windows 2003 Enterprise Edition 的机器上,突然运行不了这个脚本,提示:

Windows 无法访问指定设备、路径或文件。您可能没有合适的权限访问这个项目。 我以为我在做梦,或是眼睛模糊了。再次执行,还是一样;来到 CMD 下执行,也是一样,于是我被折服了。

看了 M$ 公司伟大的帮助文档后,才知道这样的情况乃是相当罕见。应该这样解决:

回到上层目录,右键补丁和 BAT 脚本所在的目录,选择“属性”,然后“安全”选项卡,点击下面的“高级”,选择“所有者”选项卡,选中“替换子容器及对象的所有者”,然后“应用”,接着切换到“审核”选项卡,选中“允许父项的继承审核项目传播到该对象和所有子对象。包括那些在此明确定义的项目”和“用在此显示的那些可以应用到子对象的项目替代所有子对象的审核项目”,点击“应用”,确定所有对话框,一切完成。

标签: windows, bat, microsoft

添加新评论