1

ネットワーク ドキュメントに使用されるスクリプトを変更する必要があるプロジェクトに取り組んでいます。現在使用しているスクリプトは SYDI の修正版で、ここにあります。私がやりたいことは、このスクリプトにnetstat -anを実行する機能を追加し、それを残りのレポートと共に返すことです。WMI と VBScript を使用して netstat 情報を返した人がいるかどうか、またそれをこのスクリプトに組み込む方法を知りたいと思っていました。

注: 私は製品を宣伝しようとしているのではなく、SYDI プロジェクトとは関係ありません。

4

1 に答える 1

3

netstat を実行して、以下のスクリプトのように結果を取得することもできますが、多くの情報は ActiveX からも入手できますが、必要な情報を正確に知る必要があります。

set sh = CreateObject("Wscript.Shell") 
set Connections = CreateObject("Scripting.Dictionary") 

call Main() 

Function Main() 
    call GetConnections() 
    call ProcessConnections() 
End Function 

Function GetConnections() 
    i = 0 
    set shExec = sh.Exec("netstat -f") 

    Do While Not shExec.StdOut.AtEndOfStream 
        Line = shExec.StdOut.ReadLine() 
        If Instr(Line, "TCP") <> 0 Then 
            Set Connection = New NetworkConnection 
            Connection.ParseText(Line) 
            call Connections.Add(i, Connection) 
            i = i + 1 
        End If 
    Loop 
End Function 

Function ProcessConnections() 
    For Each ConnectionID in Connections.Keys 
        wscript.echo ConnectionID & Connections(ConnectionID).RemoteIP 
    Next 
End Function 

Class NetworkConnection 
    Public Protocol 
    Public LocalIP 
    Public LocalPort 
    Public RemoteIP 
    Public RemotePort 

    Public Sub ParseText(Line) 
        dim i 

        For i = 5 to 2 Step -1 
            Line = Replace(Line, String(i, " "), " ") 
        Next 

        Line = Replace(Line, ":", " ") 
        Line = Right(Line, Len(Line) - 1) 
        Line = Split(Line, " ") 

        Protocol = Line(0) 
        LocalIP = Line(1) 
        LocalPort = Line(2) 
        RemoteIP = Line(3) 
        RemotePort = Line(4) 

    End Sub 

    Private Sub Class_Initialize 
        'MsgBox "Initialized NetworkConnection object" 
    End Sub 

End Class

編集:ここのOPのコメントに基づいて、簡略化されたバージョン

set sh = CreateObject("Wscript.Shell")  
call GetConnections()  

Function GetConnections()  
  i = 0  
  set shExec = sh.Exec("netstat -an")  
   Do While Not shExec.StdOut.AtEndOfStream  
      Wscript.Echo shExec.StdOut.ReadLine()  
  Loop  
End Function  
于 2012-05-22T19:06:15.417 に答える