98 lines
2.5 KiB
Plaintext
98 lines
2.5 KiB
Plaintext
'------------------------------------------------------------------------------------------------
|
|
'
|
|
' Usage: pausesrv <--ADSPath|-a server1[,server2,server3...]>
|
|
' [--help|-?]
|
|
'
|
|
' SERVERx Relative ADSI path to the server to be Paused
|
|
'
|
|
' Example 1: pausesrv -a IIS://LocalHost/w3svc/3,IIS://LocalHost/w3svc/1
|
|
'------------------------------------------------------------------------------------------------
|
|
|
|
' Force explicit declaration of all variables.
|
|
Option Explicit
|
|
|
|
On Error Resume Next
|
|
|
|
Dim oArgs, ArgNum, ArgServerList
|
|
Dim verbose
|
|
Dim ArgComputers
|
|
|
|
ArgComputers = Array("LocalHost")
|
|
verbose = false
|
|
|
|
Set oArgs = WScript.Arguments
|
|
ArgNum = 0
|
|
While ArgNum < oArgs.Count
|
|
|
|
Select Case LCase(oArgs(ArgNum))
|
|
Case "--adspath","-a":
|
|
ArgNum = ArgNum + 1
|
|
ArgServerList=Split(oArgs(ArgNum), ",", -1)
|
|
Case "--computer","-c":
|
|
ArgNum = ArgNum + 1
|
|
ArgComputers = Split(oArgs(ArgNum), ",", -1)
|
|
Case "--verbose", "-v":
|
|
verbose = true
|
|
Case "--help","-?":
|
|
Call DisplayUsage
|
|
Case Else:
|
|
Call DisplayUsage
|
|
End Select
|
|
|
|
ArgNum = ArgNum + 1
|
|
Wend
|
|
|
|
If Not IsArray(ArgServerList) Then
|
|
Call DisplayUsage
|
|
End If
|
|
|
|
Dim compIndex
|
|
|
|
for compIndex = 0 to UBound(ArgComputers)
|
|
Call ASTPauseServers(ArgComputers(compIndex),ArgServerList)
|
|
next
|
|
|
|
Sub ASTPauseServers(Computer, ServerList)
|
|
Dim ServerNum, oServer
|
|
On Error Resume Next
|
|
|
|
ServerNum = 0
|
|
Dim fullPath
|
|
|
|
While ServerNum <= UBound(ServerList)
|
|
fullPath = "IIS://"&Computer&"/"&ArgServerList(ServerNum)
|
|
Trace "Pausing " & fullPath & "."
|
|
Set oServer = GetObject(fullPath)
|
|
If Err <> 0 Then
|
|
Display "Unable to open " & fullPath & "."
|
|
End If
|
|
oServer.Pause
|
|
If Err <> 0 Then
|
|
Display "Unable to pause server " & fullPath & "."
|
|
End If
|
|
ServerNum = ServerNum + 1
|
|
Wend
|
|
End Sub
|
|
|
|
Sub DisplayUsage
|
|
WScript.Echo "Usage: pausesrv <--ADSPath|-a server1[,server2,server3...]>"
|
|
WScript.Echo " [--computer|-c COMPUTER1[,COMPUTER2...]]"
|
|
WScript.Echo " [--verbose|-v]"
|
|
WScript.Echo " [--help|-?]"
|
|
WScript.Echo "Note: server1, server2, etc. is machine relative server name,"
|
|
WScript.Echo "including the service name"
|
|
WScript.Echo "Example 1: pausesrv -a w3svc/1,msftpsvc/2"
|
|
WScript.Echo "Example 2: pauseftp -c MACHINE1,MACHINE2,MACHINE3 -a w3svc/1,msftpsvc/2"
|
|
WScript.Quit (1)
|
|
End Sub
|
|
|
|
Sub Display(Msg)
|
|
WScript.Echo Now & ". Error Code: " & Hex(Err) & " - " & Msg
|
|
End Sub
|
|
|
|
Sub Trace(Msg)
|
|
if verbose = true then
|
|
WScript.Echo Now & " : " & Msg
|
|
end if
|
|
End Sub
|