Scripting 带有WMI和VBScript的Netstat
我正在进行一个项目,需要修改用于网络文档的脚本。我们使用的当前脚本是SYDI的修改版本。我想做的是在这个脚本中添加执行netstat-an并将其与报告的其余部分一起返回的功能。我很好奇是否有人使用WMI和VBScript返回netstat信息,以及如何将其合并到这个脚本中Scripting 带有WMI和VBScript的Netstat,scripting,vbscript,wmi,wmi-query,netstat,Scripting,Vbscript,Wmi,Wmi Query,Netstat,我正在进行一个项目,需要修改用于网络文档的脚本。我们使用的当前脚本是SYDI的修改版本。我想做的是在这个脚本中添加执行netstat-an并将其与报告的其余部分一起返回的功能。我很好奇是否有人使用WMI和VBScript返回netstat信息,以及如何将其合并到这个脚本中 注意:我不是在推广产品,我也不是SYDI项目的成员。您可以运行netstat并捕获结果,就像下面的脚本一样,但是activeX也提供了很多信息,但我需要知道您需要的确切信息 set sh = CreateObject("Wsc
注意:我不是在推广产品,我也不是SYDI项目的成员。您可以运行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
我想要netstat-an命令的完整输出。也就是说,我希望看到协议、本地地址、外部地址和状态的完整列表。理想情况下,这将输出到一个表中,类似于运行命令时从命令行看到的内容。谢谢你的想法和例子以及你的帮助。
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