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
iis7
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