I have the eventual goal of determining that a particular database on a particular server with particular credentials is running, but I would settle, at th开发者_如何学Pythonis point, for the ability to check and see if a server is actually up on the network. Does anyone have a way of doing this? I seem to be drawing a blank.
Michael
try this
Dim target
Dim result
target= "172.19.130.96"
Set shell = WScript.CreateObject("WScript.Shell")
Set shellexec = shell.Exec("ping " & target)
result = LCase(shellexec.StdOut.ReadAll)
If InStr(result , "reply from") Then
WScript.Echo "Server alive"
Else
WScript.Echo "Not Alive"
End If
There maybe better ways especialy given you end goal but this should work and at least point you in the correct direction.
Here's an alternative solution that uses the Win32_PingStatus
WMI class (note: this class is only available on Windows XP and later):
strServer = "stackoverflow.com"
Set oWMI = GetObject("winmgmts:\\.\root\cimv2")
Set oPing = oWMI.Get("Win32_PingStatus.Address='"& strServer & "'")
If oPing.StatusCode = 0 Then
WScript.Echo "Server is available."
Else
WScript.Echo "Server is not available."
End If
More ping script samples here: Why Doesn't My Ping Script Run on Windows 2000 Computers?
If you update the ping command so it only sends one echo request the script executes faster, if you've got an unreliable network this might not be best but for local LAN it's useful.
Dim target
Dim result
target= "172.19.130.96"
Set shell = WScript.CreateObject("WScript.Shell")
Set shellexec = shell.Exec("ping -n 1 " & target)
result = LCase(shellexec.StdOut.ReadAll)
If InStr(result , "reply from") Then
WScript.Echo "Server alive"
Else
WScript.Echo "Not Alive"
End If
For checking whether your database server is up, you can use tools like nmap. Then you can call it in your vbscript using exec() as per normal.
精彩评论