Creating an Itemized List of Server Bindings
One of my servers has a large number of individual web sites on it, and each of these web sites has several serveral server bindings for different IP addresses, Port Assignments, and Host Headers. As I continue to add more web sites on the server, it becomes increasingly difficult to keep track of all the details using the IIS user interface.
With that in mind, I wrote the following ADSI script which creates a text file that contains an itemized list of all server bindings on a server.
Option Explicit
On Error Resume NextDim objBaseNode, objChildNode
Dim objBindings, intBindings
Dim objFSO, objFile, strOutput' get a base object
Set objBaseNode = GetObject("IIS://LOCALHOST/W3SVC")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("ServerBindings.txt")' check if if have an error ...
If (Err.Number <> 0) Then' ... and output the error.
strOutput = "Error " & Hex(Err.Number) & "("
strOutput = strOutput & Err.Description & ") occurred."' ... otherwise, continue processing.
Else' loop through the child nodes
For Each objChildNode In objBaseNode' is this node for a web site?
If objChildNode.class = "IIsWebServer" Then' get the name of the node
strOutput = strOutput & "LM/W3SVC/" & _
objChildNode.Name' get the server comment
strOutput = strOutput & " (" & _
objChildNode.ServerComment & ")" & vbCrLf' get the bindings
objBindings = objChildNode.ServerBindings' loop through the bindings
For intBindings = 0 To UBound(objBindings)
strOutput = strOutput & vbTab & _
Chr(34) & objBindings(intBindings) & _
Chr(34) & vbCrLf
Next
End If' try not to be a CPU hog
Wscript.Sleep 10
NextEnd If
objFile.Write strOutput
objFile.CloseSet objBaseNode = Nothing
Set objFSO = Nothing
Hope this helps!