各位好,今天给大家分享一个我遇到的问题。 相信微软在推出了 Windows Server 2016和Win10 操作系统之后,有很多同学都第一时间进行了安装和测试,想第一时间感受一下全新的系统平台带来的新体验。
但是不知道有没有同学发现,如果我们在域环境中搭建了 Server 2016或者Win10的机器,域内的 WSUS 服务器有可能是无法识别出来的,所以会直接导致补丁推送失败,从而 Server2016和Win10的终端根本无法享受到Windows更新服务。
那么怎么办呢? 今天我就来给大家说一下解决办法,让我们的“尝鲜”之旅不在恐慌!
首先我们看一下现象。
我们以一台 Windows Server 2016为例,首先我们在尝试通过WSUS更新服务的时候,发现系统能够识别出需要更新的补丁,但是一直无法下载。
或者说还有如下的可能行,就是直接提示更新遇到错误。
这个时候我们第一时间会想到登上WSUS去一探究竟。
我们从下图中可以看到,我们安装了 Windows Server 2016 的一台服务器,居然被WSUS识别成了 Windows Server 2008 标准版(完全安装) 的版本。
这个就说的通了,为什么我们的终端服务器上迟迟未收到正确的补丁包。WSUS都认错OS了,怎么推送补丁呢?
那么我们想要纠正WSUS的这个错误,需要怎么做呢?
答案就是 安装两个补丁 即可
KB3095113
和
KB3159706
下载地址: https://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB3159706%20
下载完成这两个补丁后,按照顺序进行安装
第一个 KB3095113 补丁没有什么特别需要注意的,安装后需要重启。
但是第二个补丁 KB3159706 就有一些需要手动操作的地方了。
我们来看一看:
双击补丁安装包
系统开始独立安装补丁
安装完成,需要重启服务器
等服务器重启完毕之后,打开IIS,检查您所使用的WSUS使用的是 http 还是 https 协议,通常我们使用的都是8530的 http协议。
为什么要看这个呢? 因为不同的协议,接下来的手动操作办法是不同的。
先说第一种,如果是 8530的 http协议,OK 那么恭喜你,你的步骤会很简单。
1. 首先打开cmd命令行
输入下面的命令 (路径大家酌情修改)
"C:\Program Files\Update Services\Tools\wsusutil.exe" postinstall /servicing
当看到如下字样,说明部署完成。
2. 接下来 在服务器管理器添加角色和功能向导选择.NET Framework 4.5 功能下, HTTP 激活
3. 安装完成后,重启WSUS服务。
下面介绍第二种 启用了 8531 https 协议的同学们,你们的处理办法稍微麻烦一点。
- 将 Web.Config 文件的所有权分配给管理员组 (在提升的命令提示符下运行)︰
takeown /f web.config /a icacls "C:\Program Files\Update Services\WebServices\ClientWebService\Web.config" /grant administrators:f
- 找到的 Web.Config 文件中的以下路径︰
C:\Program Files\Update Services\WebServices\ClientWebService\Web.Config
- 在文件中进行以下更改。
注意:此代码示例表示一个文本块。行间距仅用于强调文本更改,以粗体显示。<services> <service name="Microsoft.UpdateServices.Internal.Client" behaviorConfiguration="ClientWebServiceBehaviour">
<!-- These 4 endpoint bindings are required for supporting both http and https --> <endpoint address="" binding="basicHttpBinding" bindingConfiguration="SSL" contract="Microsoft.UpdateServices.Internal.IClientWebService" /> <endpoint address="secured" binding="basicHttpBinding" bindingConfiguration="SSL" contract="Microsoft.UpdateServices.Internal.IClientWebService" />
<endpoint address="" binding="basicHttpBinding" bindingConfiguration="ClientWebServiceBinding" contract="Microsoft.UpdateServices.Internal.IClientWebService" /> <endpoint address="secured" binding="basicHttpBinding" bindingConfiguration="ClientWebServiceBinding" contract="Microsoft.UpdateServices.Internal.IClientWebService" /> </service> </services>
- 添加multipleSiteBindingsEnabled ="true"特性到底部的 Web.Config 文件中,如下所示︰
</bindings> <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> </system.serviceModel>
按照上述的两种方法进行了操作之后,我们再打开WSUS管理控制台。
之前的服务器已经被识别为 Windows (version 10.0)了,这里大家不要觉得奇怪,因为 server 2016和 Win10 都是相同的架构平台,所以这里的显示是相同的。
哈哈,补丁成功推送过来了,安装成功!
搞定!
Win Server 2012 R2 WSUS 无法识别 Win Server 2016 & Win10的解决办法