65.9K
CodeProject is changing. Read more.
Home

VBScript to dump websitelayout and application running under AppPool in IIS WebServer

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.21/5 (7 votes)

Dec 9, 2005

viewsIcon

38420

downloadIcon

103

VBScript to Provide websitelayout for IIS WebServer

Introduction

VBScript that will read the metabase information using WMI. This VBScript can be easily run at the client place and would tell us at one go what all web sites are running under Application Pools.

When we run this VBScript on client side it provide website layout in tree view format

+AppPoolId: DefaultAppPool
+WebSiteID: 1
+WebSite Name: Default web site
   -Application Name: W3SVC/1/ROOT
   -Application Name: W3SVC/1/ROOT/Timesheet
   -Application Name: W3SVC/1/ROOT/wiki
+WebSiteID: 2
+WebSite Name: Sukhvir Singh Nauhwar
   -Application Name: W3SVC/1/Forum

Now you can find out how many website running on particular Application Pools for IISWebServer

'This VBScript provide web site layout dump 
strComputer = "."
Set objWMIService = GetObject("winmgmts:{authenticationLevel=pktPrivacy}\\" &_
                             strComputer & "\root\microsoftiisv2")
Set colItemswb = objWMIService.ExecQuery( "Select * from IIsWebServerSetting" ) 

'Find Website Id
Dim WebSiteIds(10)
Dim WebSiteDisplayName(10)
 
n = 0
For Each objItemwb in colItemswb 
    WebSiteId = Mid(objItemwb.Name, 7) 
    WebSiteIds( n ) = WebSiteId
    WebSiteDisplayName(n) = objItemwb.ServerComment
    n = n + 1
Next

n = n - 1 

 
Set colItems = objWMIService.ExecQuery("Select Name From IIsApplicationPool")
For Each objItem in colItems
    'Find Application Pool
    Dim AppPool
    Dim ln
    AppName = objItem.Name 
    ln=Len(AppName)
    AppPool = Mid(AppName , 16 ,ln) 
    Wscript.Echo "" 
    Wscript.Echo "+AppPoolId: " & AppPool
    For m = 0 to n 
        WebSiteId = WebSiteIds(m)
        objItem.EnumAppsInPool arrApplications
        displayWebSite = true
        'Find Application Name
        For i = 0 to Ubound(arrApplications)
            Dim application
            Dim length
            Dim arrApp
            arrApp = arrApplications(i)
            length=Len(arrApp)-5
            application = Mid(arrApp , 5 ,length)
            nextslashPos = InStr(7, application, "/")
            appwebsiteid = Mid(application, 7, nextslashPos - 7 )
            matchFound = StrComp( appwebsiteid, WebSiteId )
            If matchFound=0 then 
                if displayWebSite = true Then 
                    'Dispaly Website Id & Website Name
                    Wscript.Echo Space(4) &"+WebSiteID: " & WebSiteId 
                    Wscript.Echo Space(4) & "+WebSite Name: " &_
                                            WebSiteDisplayName(m)
                    displayWebSite = false
                End If
                Wscript.Echo Space(8) & "-Application Name: " & application
            End if 
        Next 
    Next
    Wscript.Echo "" 
    Wscript.Echo "" 
    Wscript.Echo "" 
Next