Вопрос

I want to get status of a Application Pool. I have vbscript taken from here.

strArgAppPool = Wscript.Arguments.Unnamed.Item(0)
Const noError = False

' Establish the connection to the WMI provider
Set oWebAdmin = GetObject("winmgmts:root\WebAdministration")

' Search the AppPool passed as argument in the list of application pools
Set oAppPool = oWebAdmin.Get("ApplicationPool.Name='" & strArgAppPool & "'")

' Create nice messages for pool states
Select Case oAppPool.GetState      

    Case 0            
        StateDescription = "STARTING"        
        outputStatus = "WARNING! "
        outputCode = 1
    Case 1            
        StateDescription = "STARTED"        
        outputStatus = "OK! "
        outputCode = 0
    Case 2            
        StateDescription = "STOPPING"
        outputStatus = "WARNING! "
        outputCode = 1
    Case 3            
        StateDescription = "STOPPED"        
        outputStatus = "CRITICAL!! "
        outputCode = 2
    Case 4            
        StateDescription = "UNKNOWN"        
        outputStatus = "UNKNOWN? "
        outputCode = 3
    Case Else   
        StateDescription = "UNDEFINED VALUE"    
        outputStatus = "UNKNOWN? "
        outputCode = 3

End Select

' Output
Wscript.Echo outputStatus & oAppPool.Name & ": " & StateDescription

' Error handling
If noError = true Then
    ' Error message
    Wscript.echo "UNKNOWN: Error during the WMI query for app pool " & strArgAppPool & " !"
    ' Exit & return code
    WScript.Quit(3)
Else
    ' Clean exit
    WScript.Quit(outputCode)
End If

Through a batch file I am trying to run it as

status1.vbs "DefaultAppPool"

But I ended up with this

enter image description here

Is it some service is not started? I have tried running the vb script directly. I have tried passing arguments without quotes and all similar stuff. I don't write scripts, but got to do it this time.

Error dialog indicates line 5, Set oWebAdmin = GetObject("winmgmts:root\WebAdministration"). I have tried everything I could in last 5 hours. I have a readymade script and I am not able to run it. Shame and was not willing post this question all this while. But lost in end. Thanks for any help.

Also I have a working script for IIS 6. I am calling this script through PsExec on a remote server. But that's not working in IIS 7. Let me know if anyone want me to post it. Also I am using IIS 7 and Server 2008 R2 now and will be running this script using PsExec on remote server.

Это было полезно?

Решение

You don't have the role service IIS Management Scripts and Tools installed. Launch Server Manager, go to Roles → Web Server (IIS), and install the missing service.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top