IIS7 bulk bindings in vbscript , how to remove a binding

Posted by minus4 on Server Fault See other posts from Server Fault or by minus4
Published on 2012-06-29T15:14:22Z Indexed on 2012/06/29 15:17 UTC
Read the original article Hit count: 719

Filed under:

I have a script to manage adding over a thousand domains to a single site bindings, this has gone fine, but now client wants about 20 of them removed, Microsoft programmers don't think it would be nice to sort the bindings alphabetically, so does anyone know the code to remove the domains ( array list ) in bulk please.

this is what i am using:

    Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites",       "MACHINE/WEBROOT/APPHOST")
 Set sitesCollection = sitesSection.Collection
siteElementPos = FindElement(sitesCollection, "site", Array("name", "microsites"))            
If siteElementPos = -1 Then
WScript.Echo "Element not found!"
WScript.Quit
End If

 on error resume next

Set siteElement = sitesCollection.Item(siteElementPos)
Set bindingsCollection = siteElement.ChildElements.Item("bindings").Collection

Dim arrFileNames : arrFileNames =  Array("list of domains")

Dim objDict : Set objDict = CreateObject("Scripting.Dictionary")
Dim strFileName, strTemp
 For Each strFileName In arrFileNames

Set bindingElement = bindingsCollection.CreateNewElement("binding")
    bindingElement.Properties.Item("protocol").Value = "http"
  bindingElement.Properties.Item("bindingInformation").Value = "192.168.100.19:80:" &    strFileName
    bindingsCollection.AddElement(bindingElement)

Next




adminManager.CommitChanges()

WScript.Echo "Job Completed"
 WScript.Quit

Function FindElement(collection, elementTagName, valuesToMatch)
  For i = 0 To CInt(collection.Count) - 1
     Set element = collection.Item(i)
    If element.Name = elementTagName Then
        matches = True
     For iVal = 0 To UBound(valuesToMatch) Step 2
        Set property = element.GetPropertyByName(valuesToMatch(iVal))
        value = property.Value
        If Not IsNull(value) Then
           value = CStr(value)
        End If
        If Not value = CStr(valuesToMatch(iVal + 1)) Then
           matches = False
           Exit For
        End If
     Next
     If matches Then
        Exit For
     End If
  End If
Next
If matches Then
   FindElement = i
 Else
     FindElement = -1
   End If
    End Function

so as you can see it is easy to add, but i can find no code or manual or instructions for the removal. i cant seem to run appcmd either. at first i tried creating a batch file using the appcmd but this never worked, saying appcmd can not be found.

thanks

© Server Fault or respective owner

Related posts about iis7