用于检查Windows中端口可用性的VBS脚本

时间:2012-05-15 14:07:10

标签: vbscript wmi network-protocols

我正在尝试检查某个软件的前提条件。我有一组脚本可以检查磁盘空间,内存可用性等内容。

我需要创建一个脚本,可以检查某些端口是否可以打开和访问。我使用WMI检查其他网络配置项,但找不到任何检查端口可用性的参考。

任何人都有任何想法,我可以在哪里找到WMI构造,让我查看和管理端口或任何其他想法,以了解如何构建新脚本以检查端口可用性?

2 个答案:

答案 0 :(得分:3)

所以我找到了一个人曾经做过的剧本。它使用netStat。应该适用于任何Windows机器。我想我对使用WMI的愿望感到蒙蔽。

Sub PortMonitor (strCommand2)

  Set StdOut = WScript.StdOut
  Set objShell = CreateObject("WScript.Shell")
  set objScriptExec = objShell.Exec (strCommand2)

  strPingResults = LCase(objScriptExec.StdOut.ReadAll)

  if len (strPingResults) > 0 then
     WScript.Echo "Established!"
  End if
end Sub

Dim strcommand
strCommand = "cmd /C ""netStat -n |find ""127.0.0.1:1137"" | find ""ESTABLISHED"""""
Call PortMonitor (strCommand)

OP:http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Server/2003_Server/Q_27476065.html#

答案 1 :(得分:1)

使用cmd.exenetstat

D:\ :: type openports.bat
@echo off
for /f "tokens=2" %%i in ('netstat -an -p tcp ^| findstr ABH') do (
        for /f "delims=: tokens=2" %%p in ("%%i") do (
                echo %%p
        )
)

D:\ :: openports.bat
80
135
445
...

请注意,这适用于版本为netstat的德语版ABHÖREN;对于英语版本,它可能类似LISTENING,因此您必须将findstr ABH替换为适当的英语表达式。