I have two questions:
- How to get list of all web web sites on server
- How to get list of log folders for each website (ex:C:\WINDOWS\system32\LogFiles\W3SVC1141336521 )
Are there special console commands?
From serverfault
Maxim
-
for up to IIS6 you should be able to get the information you need with AdsUtil.vbs
There are ways to make it compatable with IIS7, but not the right way of doing things long term.
From Nick Kavadias -
I've used this VB script on IIS 6. It should work on IIS 7 if you install IIS/WMI on Windows Server 2008.
Save it as EnumerateWebSites.vbs and run it on a command line.
Option Explicit Dim ServerName Dim fso, WriteStuff, OutputText Dim ws, wmiService, colItemz, item, sPath Dim CrLf, TabChar TabChar = Chr(9) CrLf = Chr(13) & Chr(10) Set wmiService = GetObject("winmgmts:{authenticationLevel=pktPrivacy}\\.\root\microsoftiisv2") If WScript.Arguments.Length = 1 Then ServerName = WScript.Arguments(0) Else ServerName = "localhost" End If WScript.Echo "Enumerating websites on " & ServerName & CrLf Set ws = GetObject( "IIS://" & ServerName & "/W3SVC" ) EnumWebsites ws Sub EnumWebsites( ws ) Dim webServer, bindings For Each webServer IN ws If webServer.Class = "IIsWebServer" Then Set colItemz = wmiService.ExecQuery("select * from IIsWebVirtualDirSetting where name = 'W3SVC/" & webServer.Name & "/root'") For Each item in colItemz sPath = item.Path Next WScript.Echo _ "Site ID = " & webServer.Name & CrLf & _ "Comment = """ & webServer.ServerComment & """ " & CrLf & _ "State = " & StateTranslation( webServer.ServerState ) & CrLf & _ "LogDir = " & webServer.LogFileDirectory & CrLf & _ "Path = " & sPath & _ "" OutputText = OutputText & CrLf & "Site ID = " & webServer.Name & CrLf & _ "Comment = """ & webServer.ServerComment & """ " & CrLf & _ "State = " & StateTranslation( webServer.ServerState ) & CrLf & _ "LogDir = " & webServer.LogFileDirectory & CrLf & _ "Path = " & sPath & _ "" bindings = EnumBindings(webServer.ServerBindings) & _ EnumBindings( webServer.SecureBindings ) If Not bindings = "" THEN WScript.Echo "IP Address" & TabChar & _ "Port" & TabChar & _ "Host" & CrLf & _ bindings OutputText = OutputText & CrLf & "IP Address" & TabChar & _ "Port" & TabChar & _ "Host" & CrLf & _ bindings End If End If NEXT FileWriter OutputText End Sub Sub FileWriter(WriteText) Set fso = CreateObject("Scripting.FileSystemObject") Set WriteStuff = fso.OpenTextFile("OneOff.txt", 8, True) WriteStuff.WriteLine(WriteText) WriteStuff.Close Set WriteStuff = nothing Set fso = nothing End Sub Function EnumBindings( objBindingList ) Dim i, strIP, strPort, strHost Dim reBinding, reMatch, reMatches Set reBinding = NEW RegExp reBinding.Pattern = "([^:]*):([^:]*):(.*)" For i = LBOUND( objBindingList ) TO UBOUND( objBindingList ) Set reMatches = reBinding.Execute( objBindingList( i ) ) For Each reMatch In reMatches strIP = reMatch.SubMatches( 0 ) strPort = reMatch.SubMatches( 1 ) strHost = reMatch.SubMatches( 2 ) If strIP = "" Then strIP = "All Unassigned" If strHost = "" Then strHost = "*" If LEN( strIP ) < 8 Then strIP = strIP & TabChar EnumBindings = EnumBindings & _ strIP & TabChar & _ strPort & TabChar & _ strHost & TabChar & _ "" Next EnumBindings = EnumBindings & CrLf Next End Function Function StateTranslation(StatusID) Select Case StatusID Case 1 StateTranslation = "Starting" Case 2 StateTranslation = "Started" Case 3 StateTranslation = "Stopping " Case 4 StateTranslation = "Stopped" Case 5 StateTranslation = "Pausing" Case 6 StateTranslation = "Paused" Case 7 StateTranslation = "Continuing" Case ELSE StateTranslation = "Unknown state" End Select End FunctionFrom splattne
0 comments:
Post a Comment