We have a web application that is installed on Windows 2003 and Windows 2008 systems. In the past, our install code used ADSI to create a couple of application directories in IIS, but this requires the IIS 6 management components to be installed in Windows 2008. I have been trying to use WMI to create the application directories so we can support both operating systems.
I have been trying this code
   public static void AddVirtualFolder(string serverName, string websiteId, string name, string path)
    {
        ManagementScope scope = new ManagementScope(string.Format(@"\\{0}\root\MicrosoftIISV2", serverName));
        scope.Connect();
        string siteName = string.Format("W3SVC/{0}/Root/{1}", websiteId, name);
        ManagementClass mc = new ManagementClass(scope, new ManagementPath("IIsWebVirtualDirSetting"), null);
        ManagementObject oWebVirtDir = mc.CreateInstance();
        oWebVirtDir.Properties["Name"].Value = siteName;
        oWebVirtDir.Properties["Path"].Value = path;
        oWebVirtDir.Properties["AuthFlags"].Value = 5; // Integrated Windows Auth.
        oWebVirtDir.Properties["EnableDefaultDoc"].Value = true;
        // date, time, size, extension, longdate ;
        oWebVirtDir.Properties["DirBrowseFlags"].Value = 0x4000003E;
        oWebVirtDir.Properties["AccessFlags"].Value = 513; // read script 
        oWebVirtDir.Put();
        ManagementObject mo = new ManagementObject(scope, new System.Management.ManagementPath("IIsWebVirtualDir='" + siteName + "'"), null);
        ManagementBaseObject inputParameters = mo.GetMethodParameters("AppCreate2");
        inputParameters["AppMode"] = 2;
        mo.InvokeMethod("AppCreate2", inputParameters, null);
        mo = new ManagementObject(scope, new System.Management.ManagementPath("IIsWebVirtualDirSetting='" + siteName + "'"), null);
        mo.Properties["AppFriendlyName"].Value = name;
        mo.Put();
    }
}
However, I get path not found errors on known directories. If anybody has some references I can use, I would greatly appreciate it. Any other suggestions on how to go about this are also welcome.