【问题标题】:VBS Script to Check Port Availability in Windows在 Windows 中检查端口可用性的 VBS 脚本
【发布时间】:2012-05-23 01:40:39
【问题描述】:

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

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

任何人有什么想法可以找到一个 WMI 构造来让我查看和管理端口,或者有任何其他关于如何构建新脚本来检查端口可用性的想法?

【问题讨论】:

  • 为了清楚起见,添加到问题标题后缀“在当前机器上”。我一直在寻找同样的东西,但在启动客户端进程之前测试远程机器上的可用端口。

标签: vbscript wmi network-protocols


【解决方案1】:

所以我找到了一个不久前有人制作的脚本。它使用 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)

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

【讨论】:

    【解决方案2】:

    使用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 替换为适当的英语表达式。

    【讨论】:

      【解决方案3】:

      略有不同:

      Function PortIsOpen(port)
          PortIsOpen = False
          Set StdOut = WScript.StdOut
          Set objShell = CreateObject("WScript.Shell")
          Set objScriptExec = objShell.Exec("cmd /C ""netstat -ano -p tcp | find "":" & port & " "" "" ")
          strPingResults = objScriptExec.StdOut.ReadAll
          If Len(strPingResults) > 0 Then PortIsOpen = True
      End Function
      
      Msgbox PortIsOpen("135")
      

      【讨论】:

      • 如果您提供解释为什么这是首选解决方案并解释它是如何工作的,它会更有帮助。我们想要教育,而不仅仅是提供代码。见“How do I write a good answer?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      • 2011-02-21
      • 1970-01-01
      • 2017-03-13
      • 2016-03-15
      • 2015-06-27
      • 1970-01-01
      相关资源
      最近更新 更多