Metabase properties can be configured programmatically using three different technologies in various different languages (see Comparison of IIS Administration Features). For basic code examples, see the sections under Using IIS Programmatic Administration. More complicated, task-based code examples are provided in Using IIS.
The following code example configures the AccessFlags property to allow read and script access to clients browsing the default Web site. This example uses uses ADSI in VBScript. ADSI is special in that it can refer to flags as properties. This code shows how to configure any DWORD (or Long) property.
Dim lAccessFlags
Set IIsWebServerObj = GetObject("IIS://localhost/W3SVC/1")
' Store original value:
lAccessFlags = IIsWebServerObj.AccessFlags
WScript.Echo("Before: AccessFlags = " & IIsWebServerObj.AccessFlags)
' There are multiple ways to set a property:
IIsWebServerObj.AccessRead = True
IIsWebServerObj.Put "AccessScript", True
IIsWebServerObj.SetInfo
IIsWebServerObj.GetInfo
WScript.Echo("After: AccessFlags = " & IIsWebServerObj.AccessFlags)
' Restore to original value:
IIsWebServerObj.Put "AccessFlags", lAccessFlags
IIsWebServerObj.SetInfo
IIsWebServerObj.GetInfo
WScript.Echo("Restored: AccessFlags = " & IIsWebServerObj.AccessFlags)
The following code example configures the AccessFlags property to allow read and script access to clients browsing the default Web site. This example uses WMI in JScript. This code shows how to configure any DWORD (or Long) property.
IIS 5.1 and earlier: WMI cannot be used.
var lAccessFlags;
var providerObj = GetObject("winmgmts://localhost/root/MicrosoftIISv2");
var IIsWebServerObj = providerObj.get("IIsWebServerSetting='W3SVC/1'");
// Store original value:
lAccessFlags = IIsWebServerObj.AccessFlags;
WScript.Echo("Before: AccessFlags = " + IIsWebServerObj.AccessFlags);
IIsWebServerObj.Properties_("AccessFlags").Value = 513;
IIsWebServerObj.Put_();
IIsWebServerObj.get;
WScript.Echo("After: AccessFlags = " + IIsWebServerObj.AccessFlags);
// Restore to original value:
IIsWebServerObj.Properties_("AccessFlags").Value = lAccessFlags;
IIsWebServerObj.Put_();
IIsWebServerObj.get;
WScript.Echo("Restored: AccessFlags = " + IIsWebServerObj.AccessFlags);