So this is a quick blog for a frustrating issue, that is actually very easy to resolve.
If you are on Windows Server 2012, and you’ve had to reinstall WSUS for any reason and receive the following error in your tmp log after attempting to finalize the installation:
2013-02-20 16:04:17 Creating default subscription.
2013-02-20 16:04:17 Instantiating UpdateServer
2013-02-20 16:04:19 CreateDefaultSubscription failed. Exception: System.Net.WebException: The request failed with HTTP status 503: Service Unavailable.
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object parameters)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.CreateUpdateServer(String serverName, Boolean useSecureConnection, Int32 portNumber)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateServer..ctor(Boolean bypassApiRemoting)
2013-02-20 16:04:19 StartServer encountered errors. Exception=The request failed with HTTP status 503: Service Unavailable.
2013-02-20 16:04:19 Microsoft.UpdateServices.Administration.CommandException: Failed to start and configure the WSUS service
at Microsoft.UpdateServices.Administration.PostInstall.Execute(String arguments)
It’s most likely an IIS issue.
Open the IIS console, delete the WSUS Site, and perform the post installation tasks again.
Ran into this on a failing MP repair in our DMZ. The error was a 1603, and according to the mp.msi logs it was unable to create the virtual directories for the MP to function. What was looking like a complete IIS rebuild turned out to be a known issue surrounding BITS; and a far simpler solution then I had originally imagined.
The long and short or it; uninstall and reinstall the BITS feature, then reinstall the MP site component and bam.
So I ran into a rather straight forward script request recently that turned into a ton of research for what is a very simple solution in the end. I needed to disable anonymous FTP on multiple XP machines. Now normally this wouldn’t have been an issue except that they are using version 5.1 of IIS.
Why is that a problem?
Well it wasn’t until IIS version 6.0 that WMI components were added. Generally finding support information for these types of tasks can be the lion share of the work anyway, and in this case; that was most certainly the outcome.
In the end I found a comprehensive list of IIS metabase properties (the original list read as if they were only accessible via WMI which I found later to be untrue) and I was free to begin exploring them all individually and building some very simple scripts to modify our server properties.
First, lets disable anonymous FTP since that’s what started us on this:
Set oFtpServer = GetObject("IIS://localhost/MSFtpsvc")
oFtpServer.Put "AllowAnonymous", 0
Now for our VDs I’d like to disable anonymous while utilizing the integrated windows authentication instead.
Set oWebServer = GetObject("IIS://localhost/W3SVC")
owebserver.put "authflags", 4
Simple enough, instantiate the object, put a property change in, then commit the change. In these examples I’m setting the changes at the root, but it’s possible to drill them down to specific VDs by finishing the full path when instantiating.
Thankfully technet saved my behind after some digging, but here’s the list of Metabase Properties for anyone reading this who might find themselves at a point of frustration over dealing with legacy IIS installs.
Be sure to also familiarize yourself with the data types etc if this is new to you.