2015年6月30日 星期二

WSUS 啟動後續安裝工作失敗

安裝完WSUS角色後,點選啟動後續安裝工作,出現失敗...

錯誤訊息如下
C:\Users\Administrator\AppData\Local\Temp\tmpxxxx.tmp
2015-06-29 16:57:37  Postinstall started
2015-06-29 16:57:37  Detected role services: Api, UI, WidDatabase, Services
2015-06-29 16:57:37  Start: LoadSettingsFromXml
2015-06-29 16:57:38  Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentLocal
2015-06-29 16:57:38  Value is true
2015-06-29 16:57:38  End: GetConfigValue
2015-06-29 16:57:38  Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentDirectory
2015-06-29 16:57:38  Config file did not contain a value "ContentDirectory"
2015-06-29 16:57:38  Microsoft.UpdateServices.Administration.CommandException: 系統上找不到必要的設定值。這通常是因為透過 PowerShell 安裝 WSUS 但未指定設定檔。如需使用 PowerShell 執行 WSUS 安裝的建議步驟的詳細資訊,請參閱 TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) 的<使用 PowerShell 管理 WSUS>文章。
   於 Microsoft.UpdateServices.Administration.PostInstall.GetConfigValue(String filename, String item)
   於 Microsoft.UpdateServices.Administration.PostInstall.LoadSettingsFromXml()
   於 Microsoft.UpdateServices.Administration.PostInstall.Initalize(Parameters parameters)
   於 Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
嚴重錯誤: 系統上找不到必要的設定值。這通常是因為透過 PowerShell 安裝 WSUS 但未指定設定檔。如需使用 PowerShell 執行 WSUS 安裝的建議步驟的詳細資訊,請參閱 TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) 的<使用 PowerShell 管理 WSUS>文章。

它說找不到 ContentDirectory 的設定值,雖然我確定在安裝時有輸入,不過算了...

設定檔 UpdateServices-Services.xml 在 Windows\System32\ServerManager\ComponentConfiguration\
內容如下
<?xml version="1.0" encoding="utf-16"?>
    <INSTANCE CLASSNAME="ServerComponent_UpdateServices_Services">
        <PROPERTY NAME="ContentDirectory" TYPE="string">
        </PROPERTY>
        <PROPERTY NAME="ContentLocal" TYPE="boolean">
            <VALUE>true</VALUE>
        </PROPERTY>
    </INSTANCE>
解決方法如下,加入 ContentDirectory 的值
<?xml version="1.0" encoding="utf-16"?>
    <INSTANCE CLASSNAME="ServerComponent_UpdateServices_Services">
        <PROPERTY NAME="ContentDirectory" TYPE="string">
            <VALUE>input file location here</VALUE>
        </PROPERTY>
        <PROPERTY NAME="ContentLocal" TYPE="boolean">
            <VALUE>true</VALUE>
        </PROPERTY>
    </INSTANCE>
存檔後點選"啟動後續安裝工作",順利通過。

--
參考資料
Server 2012 WSUS Post-deployment configuration fails - comprehending the log file
Windows Server 2012 筆記(一) WSUS 4.0 安裝設定
建立自家的 Windows Update Server - WSUS