我想要做的是指定几个端口然后检查它们以查看是否存在已建立的连接。我找到了以下脚本并运行但它只列出了3个端口,我不明白为什么。我验证了有问题的端口有活动规则(以及下面输出中未列出的许多其他端口)。
Set objFirewall = CreateObject("HNetCfg.FwMgr")
Set objPolicy = objFirewall.LocalPolicy.CurrentProfile
Set colPorts = objPolicy.GloballyOpenPorts
For Each objPort in colPorts
Wscript.Echo "Port name: " & objPort.Name
Wscript.Echo "Port number: " & objPort.Port
Wscript.Echo "Port protocol: " & objPort.Protocol
Wscript.Echo "Port enabled: " & objPort.Enabled
Next
我认为我追踪了objPort
scope = _.extend(scope, ParentScope);
,但我甚至看不到状态属性,所以我认为这是错误的方向。
答案 0 :(得分:0)
这很有效。但是,我决定使用-b
的{{1}}参数来查找可执行文件名中的字符串(在本例中为" vnc"),而不是端口。
netstat
这是一个将监视特定端口的bat文件。不幸的是,您必须使用提升的权限从命令提示符运行它。
strCommand = "cmd /C ""netStat -n -b | find ""vnc"""""
Set StdOut = WScript.StdOut
Set objShell = CreateObject("WScript.Shell")
found = 0
wscript.echo "Waiting for connection..."
Do Until found = 1
set objScriptExec = objShell.Exec (strCommand)
strResults = LCase(objScriptExec.StdOut.ReadAll)
if len (strResults) > 0 then
MsgBox "Found VNC connection!"
found = 1
else
WScript.Sleep(5000)
End if
Loop