I completed all available Windows Updates and proceeded to add the WSUS role on Server 2012R2. I chose the default WID database and the role addition was seemingly successful. Unfortunately, the Post-deployment Configuration failed. A log file had been created in the AppData\Local\Temp folder but at initial glance it seemed to imply that my error was likely due to skipping a step during installation via PowerShell, however, I didn't install using PowerShell.
Upon closer inspection the specifics of my error were right there for me, I just had to look at it long enough to decipher the details. What I now read is that Post-deployment configuration finds a file called UpdateServices-Services.xml (I found it in Windows\System32\ServerManager\ComponentConfiguration\).
It determines that ContentLocal=True which correctly indicates that my updates are to be stored locally. It proceeds to inquire about the ContentDirectory, but comes back without a value.
Here are my UpdateServices-Services.xml file contents:
<?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>
I can see that the ContentLocal property did indeed have the value true, but the ContentDirectory property did not have a value. I now needed to figure out if a String value could be specified in the same way a Boolean value was, or if it needed quotes around it, or was supposed to be specified more like an attribute (learned about that somewhere along the way).
My UpdateServices-Services.xml now looks like this:
<?xml version="1.0" encoding="utf-16"?><INSTANCE CLASSNAME="ServerComponent_UpdateServices_Services"><PROPERTY NAME="ContentDirectory" TYPE="string"><VALUE>C:\LocalMSUpdateCache</VALUE></PROPERTY><PROPERTY NAME="ContentLocal" TYPE="boolean"><VALUE>true</VALUE></PROPERTY></INSTANCE>
Now when I launch Post Installation Tasks it takes a little longer to fail and this is the log generated:
2015-02-06 10:40:50 Postinstall started
2015-02-06 10:40:50 Detected role services: UI, WidDatabase, Services
2015-02-06 10:40:50 Start: LoadSettingsFromXml
2015-02-06 10:40:50 Start: GetConfigValue with filename=UpdateServices-Services.xml item=ContentLocal
2015-02-06 10:40:50 System.TypeInitializationException: The type initializer for 'Microsoft.UpdateServices.Internal.UtilConstants' threw an exception. ---> System.IO.InvalidDataException: Invalid installation directory
at Microsoft.UpdateServices.Internal.SetupInfo.GetInstallDirectory()
at Microsoft.UpdateServices.Internal.UtilConstants..cctor()
--- End of inner exception stack trace ---
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)
I am at a lost. Please help and thanks in advance!!