各位好,今天給你們分享一個我遇到的問題。 相信微軟在推出了 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 都是相同的架構平臺,因此這裏的顯示是相同的。
哈哈,補丁成功推送過來了,安裝成功!
搞定!