SCCM 2007 and Windows 2008 - WebDAV Fix

Installing SCCM 2007 SP2 + R2 today on a Windows 2008 R2 server I came across what appears to be a common problem; the SMS Site Component Manager fails to install the SMS_MP_CONTROL_MANAGER component due to a WebDAV error:

Severity: Error
Type: Detail
Component:  SMS_MP_CONTROL_MANAGER
Message ID: 4970
Description: SMS Site Component Manager faild to install component SMS_MP_CONTROL_MANAGER on server SCCMHOST.    The WebDAV server extension is either not installed or not configured properly.  Solution: Make sure WebDAV is installed and enabled. Make sure there is an authoring rule that allow "All users" read access to "All content". Make sure the WebDAV settings "Allow anonymous property queries" and "Allow property queries with infinite depth" are set to "true" and "Allow Custom Properties" is set to false.

"Ah-ha! I remember this one, I'll just go to the IIS Manager and set those properties" - but it doesn't work. Nothing, in fact, seems to help - setting at the site level, setting at the web server level, SCCM is still sitting there complaining that the properties are not configured correctly.

At this point you hit the Internet. Literally dozens of sites recommend going to the %SystemRoot%\System32\InetSrv\Config\Schema folder, taking ownership of the schema file WebDAV_Schema.XML and modifying the file with Notepad.

Stop! Put down the text editor and back away slowly.

Your first reaction on taking ownership of a system file should be to question whether you're doing the right thing or not.

Your second reaction should be about the same as the first, only in slow motion and with a distinctly curious expression on your face.

And the fact is that you don't need to do that - because you're modifying the default for every single web site on the server both now and forever more. Now, I'm not recommending that you run a web server on the same host as your SCCM environment, but think about this for a second; if Microsoft updates that schema file in a service pack or patch, you and your SCCM environment are screwed. Key point: you do not "own" the definition of the schema, you own the configuration that uses said schema.

Instead, do the right thing and take one of the following two actions.

  1. Think for a moment about the server you're working with, recall that Windows 2008 and Windows 2008 R2 enforce UAC; run the IIS console as an Administrator and make your changes to the WebDAV configuration. This is definitely the preferred recommendation!
  2. Use Notepad to edit the configuration file for the server rather than the schema - that'd be %SystemRoot%\System32\InetSrv\Config\applicationHost.config. Inside you will find the XML configuration for IIS, and you can change the section that reads:

        <location path="Default Web Site">
            <system.webServer>
                <webdav>
                    <authoring enabled="true">
                    </authoring>

    to:

        <location path="Default Web Site">
            <system.webServer>
                <webdav>
                    <authoring enabled="true">
                        <properties allowAnonymousPropfind="true" allowInfinitePropfindDepth="true" allowCustomProperties="false" />
                    </authoring>

Note: If there is an existing properties element, just set your configuration - don't add extra properties elements; it doesn't work that way.

No Comments