WSUS 完整部署笔记

现在各种利用系统漏洞的黑客层出不穷,为了系统安全。都要为服务器打上最新的系统补丁,老板不出钱,不肯买专业软件。只能自己想办法了。下面是我折腾 WSUS 的完全笔记,网上找得到的那些根本不全,只有简单的搭建方法。还是自己动手丰衣丰食。把所有坑都填完了,做个总结。

WSUS 服务端搭建

这个就跳过了,太简单。在服务器里选择 server 更新服务。一路下一步就好。



WSUS 服务端配置

第一次打开 WSUS 就出现配置向导,直接下一步。

进入 “加入 Mircrosoft Update 改善计划” 对话框,这里我我没有选择 “是的,我希望加入 Mircosoft Update 改善计划”,可以取不选择改善计划。“下一步”。

进入 “选择 < 上游服务器>” 的对话框,这里选择默认即可,如果你的局域网中已经有另一台 Wsus 服务器存在,那么也可以选择第二项,从向一个 Wsus 服务器同步更新。不过需要设置好另一个 Wsus 服务器的服务器名和端口号。设置好后点击 “下一步”。

进入 “指定代理服务器” 对话框,如果你的这台服务器是通过代理上网的,这里就需要设置代理参数了。如果服务器直接可以上网,就无需任何设置,直接 “下一步”。

进入 “连接到上游服务器” 的对话框,这里可以点击 “开始连接” 测试跟上游服务器是否连通,并下载一些信息,连接的时间会比较长。等了几分钟终于下载成功,“下一步”。

进入 “选择语言” 对话框,选择更新下载的语言,这里可以根据你服务器和客户机操作系统的语言种类,选择是 “简体中文” 或者 “繁体中文”。并点击下一步。

进入 “选择产品” 对话框,选择要更新系统。

进入 “选择分类” 对话框,选择要更新的内容。

手同动步,点击左边树形菜单的同步,出现同步界面如下,正中间上面显示的是历史同步记录,下面显示的是同步详细信息。点击右边操作栏的 “立即同步” 就可以马上与上游更新服务器同步下载更新了.

开始初始同步,选择下一步。

自此服务端配置完成。

WSUS 客户端配置

运行组策略

在计算机配置 -> 管理模板 ->windows 组件 ->windows update 里,配置 4 个画红框的项目。

配置自动更新

允许自动更新立即安装

指定 Intranet Microsoft 更新服务地址,服务器地址就写成上面那台服务的地址,记得一定是 http://ip 地址:8530 这样的写法。

对于有已登陆用户的计算机,计划的自动更新安装不执行重新启动。如果不想打完补丁,服务器自动重启。这个选项一定要勾选上。

WSUS 问题检查。

上面那些基本上都是网上直接都可以找得到的。但客户端无法同步服务端的各种问题,怎么排查,都没有人写得清楚明白。下面这些才是本人填坑经验,按照我的方法检查下来,基本可以解决 99% 的问题。话不多说,还是分二部分。

WSUS 客户端问题

1. 没有足够的时间让客户端检测出来,使用下面的命令强制刷新 wsus 更新组策略。

1
2
gpupdate /force
wuauctl.exe /detectnow

2.WSUS SID 存在相同的客户端 ID
系统镜像如果是克隆的话,会存在 WSUS SID 相同的情况。这个时候就需要删除注册表项来解决。在运行里输入 regedit, 删除下面路径的注册项。

1
2
3
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\AccountDomainSid
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\PingID
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\SusClientId

然后在 CMD 执行,刷新一遍。

1
wuauclt /resetauthorization /detectnow

下面我自己写了一个脚本。同学们可以复制下来,保存成 bat 批处理文件。跑一遍就可以了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
Echo Save the batch file "AU_Clean_SID.cmd". This batch file will do the following:
Echo 1. Stops the wuauserv service
Echo 2. Deletes the AccountDomainSid registry key (if it exists)
Echo 3. Deletes the PingID registry key (if it exists)
Echo 4. Deletes the SusClientId registry key (if it exists)
Echo 5. Restarts the wuauserv service
Echo 6. Resets the Authorization Cookie
Pause
@echo on
gpupdate /force
net stop wuauserv
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
rd /s /q C:\Windows\SoftwareDistribution
net start wuauserv
wuauclt /resetauthorization /detectnow
Pause

3. 策略里更新服务地址错误。
查看:计算机配置 -> 管理模板 -> Windows 组件 -> Windows Update->

通过计算机名称或 IP 地址将以下两项设置为 WSUS 服务器

“设置 Intranet 更新服务以检测更新”

“设置 Intranet 统计服务器”

4. 测试连接 wsus 服务器是否正常。
在客户端浏览器中,访问下面的网址。查看是否为空白页。空白页为正常,不是空白页的话,就需要检查一下网络及防火墙设置了。

1
http://WSUS服务器地址:8530/Selfupdate/

5. 将当前组策略导出,查看是否配置正确。

1
gpresult /h C:\report.html

6. 查看 windowsupdate 错误日志。

另外还可以通过查看 c:\windows\windowsupdate.logs 日志文件来发现所在问题。

WSUS 服务端

WSUS 控制台报错提示连接错误,通过点击重置服务器节点偶尔能恢复正常,重启 WSUS Service 服务也可立即恢复,但连接故障问题仍频繁出现。如下图:

故障根源:IIS 的应用程序池默认的” 专用内存限制” 是 1.8G 内存,且开启了” 快速故障防护”,但 WSUS 更新达到一定规模,默认分配的内存已不满足需要,导致工作进程崩溃,最终触发了 WsusPool 应用程序池关闭。

解决:根据实际需求调大内存即可。

打开 IIS 管理器 - 应用程序池,找到 WsusPool,右侧点击高级设置,在专用内存限制项中将内存改为合理值如 4GB,此操作亦可优化 WSUS 控制台运行体验。或者将内存项改为 0(不限制)、关闭” 快速故障防护”。

写在最后

为了方便配置客户端,自己写了二个配置脚本。如果有需要的同学可以拿去使用。
WSUS.reg 注册表文件,需把服务器地址修改为自己的服务器地址。

链接: https://pan.baidu.com/s/1RW05r8rqvoFOsHNdtFhTsw 提取码: cxm3