VBS检查netstat的输出

时间:2011-06-30 20:57:18

标签: vbscript citrix

我创建了这张支票:

' Check if windows or mac
if not objFSO.FolderExists("\\Client\C$\.") then
Wscript.Quit
end if

该检查只是看它是否是Windows系统。如果它是Windows机器,那么运行脚本,如果不是我只是想让它退出。我需要做另一次检查以确保两种情况都是正确的,我不确定如何。 使用netstat命令有一个输出。在本地地址下有一个地址,其端口为1494,机器名为cag.domain.com。我如何包含一个检查,以便如果脚本刚刚关闭,则两个部分必须为true才能运行脚本。 所以如果\ Client \ C $。 = True和本地地址:1494和外部地址= cag.domain.com = false脚本将无法运行。

1 个答案:

答案 0 :(得分:1)

我目前不在Windows机器上,因此我无法为netstat提供正确的参数,也无法为正确的正则表达式模式提供正确的参数,但要检查netstat的输出我会做以下事情:

Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")

Set myRegExp = New RegExp
myRegExp.IgnoreCase = True
myRegExp.Global = True
myRegExp.Pattern = ":1497[ ]cag[.]domain[.]com"

Set oExec = WshShell.Exec("netstat -a")

'wait for the end of process (busy wait, yuck!)
Do While oExec.Status = 0
     WScript.Sleep 100
Loop

'scan the command output flow 
Dim oMatchColl, gotNetstat
gotMatch = false
Do While oExec.StdOut.AtEndOfStream <> True
    oMatchColl = myRegExp.Execute(oExec.StdOut.ReadLine)
    If oMatchColl.Count > 0 Then
        gotNetstat = true
        Exit Do
    End If
Loop

了解更多: