If this fails you are left scratching your head. Many times the temp file isn't much help
I could look like the following:
Postinstall started
Detected role services: Api, Database, UI, Services2014-04-15 14:47:05 Start: LoadSettingsFromXml
2014-04-15 14:47:05 Start: GetConfigValue with
filename=UpdateServices-Services.xml item=ContentLocal
Value is true
End: GetConfigValue
Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentDirectory
Config file did not contain a value "ContentDirectory"
Microsoft.UpdateServices.Administration.CommandException: A required configuration value was not found in the system. This is usually caused by installing WSUS through PowerShell and not specifying a configuration file. Review the article Managing WSUS Using PowerShell at TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the recommended steps to perform WSUS installation using PowerShell. at Microsoft.UpdateServices.Administration.PostInstall.GetConfigValue(String filename, String item) at Microsoft.UpdateServices.Administration.PostInstall.LoadSettingsFromXml() at Microsoft.UpdateServices.Administration.PostInstall.Initalize(Parameters parameters) at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
Detected role services: Api, Database, UI, Services2014-04-15 14:47:05 Start: LoadSettingsFromXml
Value is true
End: GetConfigValue
Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentDirectory
Config file did not contain a value "ContentDirectory"
Microsoft.UpdateServices.Administration.CommandException: A required configuration value was not found in the system. This is usually caused by installing WSUS through PowerShell and not specifying a configuration file. Review the article Managing WSUS Using PowerShell at TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the recommended steps to perform WSUS installation using PowerShell. at Microsoft.UpdateServices.Administration.PostInstall.GetConfigValue(String filename, String item) at Microsoft.UpdateServices.Administration.PostInstall.LoadSettingsFromXml() at Microsoft.UpdateServices.Administration.PostInstall.Initalize(Parameters parameters) at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
Fatal Error: A required configuration value was
not found in the system. This is usually caused by installing WSUS through
PowerShell and not specifying a configuration file. Review the article Managing
WSUS Using PowerShell at TechNet Library
(http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the
recommended steps to perform WSUS installation using PowerShell.
Start by looking at the UpdateServices-Services.xml located:
I might look like this:
Note:After you perform an inplace upgrade to a 2012 Server to R2 you must perform this procedure again or you SUPs will not Sync
C:\Windows\System32\ServerManager\ComponentConfiguration
This file controls where the content for WSUS is locatedI might look like this:
<?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>
The problem is that when you activeated the post install phase, this file was not properly updated by the WSUS installer.
<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Services">
<PROPERTY NAME="ContentDirectory" TYPE="string"><VALUE>D:\WSUS</VALUE></PROPERTY>
<PROPERTY NAME="ContentLocal" TYPE="boolean"><VALUE>true</VALUE>
</PROPERTY></INSTANCE>
Once we fix it we run the post install again but we see a different error
Still it didn’t have an instance, oops..
Postinstall started
Detected role services: Api, Database, UI, Services
Start: LoadSettingsFromXml
Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentLocal
Value is true
End: GetConfigValue
Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentDirectory
Value is D:\WSUS
End: GetConfigValue
Content directory is D:\WSUS
Start: GetConfigValue with filename=UpdateServices-DB.xml item=InstanceName
Config file did not contain a value "InstanceName"
Microsoft.UpdateServices.Administration.CommandException: A required configuration value was not found in the system. This is usually caused by installing WSUS through PowerShell and not specifying a configuration file. Review the article Managing WSUS Using PowerShell at TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the recommended steps to perform WSUS installation using PowerShell.
at Microsoft.UpdateServices.Administration.PostInstall.GetConfigValue(String filename, String item)
at Microsoft.UpdateServices.Administration.PostInstall.LoadSettingsFromXml()
at Microsoft.UpdateServices.Administration.PostInstall.Initalize(Parameters parameters)
at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
Fatal Error: A required configuration value was not found in the system. This is usually caused by installing WSUS through PowerShell and not specifying a configuration file. Review the article Managing WSUS Using PowerShell at TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the recommended steps to perform WSUS installation using PowerShell.
We can see that from the log it can't find the instance for WSUS. In this example we are using SQL express and not the Internal Database so back we go to addd the instance in.
C:\Windows\System32\ServerManager\ComponentConfiguration
Open the updateServices-DB.xml
<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Database"><PROPERTY NAME="InstanceName" TYPE="string"></PROPERTY></INSTANCE>
Add the instance to the file. Here we will use the default instance for SCCM, ConfigMrgSec
<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Database"><PROPERTY NAME="InstanceName" TYPE="string"><VALUE>ServerName\CONFIGMGRSEC</VALUE>
</PROPERTY></INSTANCE>
FINALLY IT IS ALL DONE!
This will stay in the file for future use.
You can also try to do the command manually from the command prompt. The only problem is that the .XML files aren't updated.
C:\Program Files\Update Services\Tools
wsusutil.exe postinstall SQL_INSTANCE_NAME="SERVERName\ConfigMgrSec" CONTENT_DIR=D:\WSUS
Now you should be up and running.The problem is that when you activeated the post install phase, this file was not properly updated by the WSUS installer.
<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Services">
<PROPERTY NAME="ContentDirectory" TYPE="string"><VALUE>D:\WSUS</VALUE></PROPERTY>
<PROPERTY NAME="ContentLocal" TYPE="boolean"><VALUE>true</VALUE>
</PROPERTY></INSTANCE>
Once we fix it we run the post install again but we see a different error
Still it didn’t have an instance, oops..
Postinstall started
Detected role services: Api, Database, UI, Services
Start: LoadSettingsFromXml
Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentLocal
Value is true
End: GetConfigValue
Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentDirectory
Value is D:\WSUS
End: GetConfigValue
Content directory is D:\WSUS
Start: GetConfigValue with filename=UpdateServices-DB.xml item=InstanceName
Config file did not contain a value "InstanceName"
Microsoft.UpdateServices.Administration.CommandException: A required configuration value was not found in the system. This is usually caused by installing WSUS through PowerShell and not specifying a configuration file. Review the article Managing WSUS Using PowerShell at TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the recommended steps to perform WSUS installation using PowerShell.
at Microsoft.UpdateServices.Administration.PostInstall.GetConfigValue(String filename, String item)
at Microsoft.UpdateServices.Administration.PostInstall.LoadSettingsFromXml()
at Microsoft.UpdateServices.Administration.PostInstall.Initalize(Parameters parameters)
at Microsoft.UpdateServices.Administration.PostInstall.Execute(String[] arguments)
Fatal Error: A required configuration value was not found in the system. This is usually caused by installing WSUS through PowerShell and not specifying a configuration file. Review the article Managing WSUS Using PowerShell at TechNet Library (http://go.microsoft.com/fwlink/?LinkId=235499) for more information on the recommended steps to perform WSUS installation using PowerShell.
We can see that from the log it can't find the instance for WSUS. In this example we are using SQL express and not the Internal Database so back we go to addd the instance in.
C:\Windows\System32\ServerManager\ComponentConfiguration
Open the updateServices-DB.xml
<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Database"><PROPERTY NAME="InstanceName" TYPE="string"></PROPERTY></INSTANCE>
Add the instance to the file. Here we will use the default instance for SCCM, ConfigMrgSec
<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Database"><PROPERTY NAME="InstanceName" TYPE="string"><VALUE>ServerName\CONFIGMGRSEC</VALUE>
</PROPERTY></INSTANCE>
FINALLY IT IS ALL DONE!
This will stay in the file for future use.
You can also try to do the command manually from the command prompt. The only problem is that the .XML files aren't updated.
C:\Program Files\Update Services\Tools
wsusutil.exe postinstall SQL_INSTANCE_NAME="SERVERName\ConfigMgrSec" CONTENT_DIR=D:\WSUS
Note:After you perform an inplace upgrade to a 2012 Server to R2 you must perform this procedure again or you SUPs will not Sync