各位好,今天给你们分享一个我遇到的问题。 相信微软在推出了 Windows Server 2016和Win10 操做系统以后,有不少同窗都第一时间进行了安装和测试,想第一时间感觉一下全新的系统平台带来的新体验。web
可是不知道有没有同窗发现,若是咱们在域环境中搭建了 Server 2016或者Win10的机器,域内的 WSUS 服务器有多是没法识别出来的,因此会直接致使补丁推送失败,从而 Server2016和Win10的终端根本没法享受到Windows更新服务。windows
那么怎么办呢? 今天我就来给你们说一下解决办法,让咱们的“尝鲜”之旅不在恐慌!服务器
首先咱们看一下现象。架构
咱们以一台 Windows Server 2016为例,首先咱们在尝试经过WSUS更新服务的时候,发现系统可以识别出须要更新的补丁,可是一直没法下载。ide
或者说还有以下的可能行,就是直接提示更新遇到错误。post
这个时候咱们第一时间会想到登上WSUS去一探究竟。测试
咱们从下图中能够看到,咱们安装了 Windows Server 2016 的一台服务器,竟然被WSUS识别成了 Windows Server 2008 标准版(彻底安装) 的版本。ui
这个就说的通了,为何咱们的终端服务器上迟迟未收到正确的补丁包。WSUS都认错OS了,怎么推送补丁呢?spa
那么咱们想要纠正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 都是相同的架构平台,因此这里的显示是相同的。
哈哈,补丁成功推送过来了,安装成功!
搞定!