2

特定のソフトウェアの前提条件を確認しようとしています。ディスク容量、メモリの可用性などを調べてチェックする一連のスクリプトがあります。

特定のポートが開いていてアクセス可能かどうかを確認できるスクリプトを作成する必要があります。WMIを使用して他のネットワーク構成項目を確認していますが、ポートの可用性を確認するための参照が見つかりません。

ポートを表示および管理するためのWMI構造を見つけることができるアイデアや、ポートの可用性を確認するための新しいスクリプトを構築する方法に関するその他のアイデアはありますか?

4

3 に答える 3

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#

于 2012-05-16T16:40:54.203 に答える
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

于 2012-05-16T17:42:47.217 に答える
1

少し違う:

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")
于 2021-10-23T09:49:52.950 に答える