【OPM】vbs脚本验证操作系统中的端口开放情况

【OPM】vbs脚本验证操作系统中的端口开放情况

代码脚本为验证非本机端口情况
代码:
On Error Resume Next

' 创建一个WbemLocator对象
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
if Err.Number Then
    WScript.Echo "Message:" & Err.Description
    WScript.Quit(1)
End If

Select Case WScript.Arguments.Count
Case 3
    strComputer = Wscript.Arguments(0)
    strUsername = Wscript.Arguments(1)
    strPassword = Wscript.Arguments(2)
    Set wbemServices = objWbemLocator.ConnectServer(strComputer, "Root\CIMV2", strUsername, strPassword)

Case Else
    WScript.Echo "Message: Error in number of parameters passed"
    WScript.Quit(1)
End Select

If Err.Number Then
    WScript.Echo "Message:" & Err.Description
    WScript.Quit(1)
End If

' 指定要检查的端口范围
intStartPort = 1
intEndPort = 65535

' 检查每个端口是否开放
For intPort = intStartPort to intEndPort
    ' 创建一个TCP连接对象
    Set objTCP = CreateObject("MSWinsock.Winsock")
    
    ' 设置超时时间为1秒
    objTCP.ReceiveTimeout = 1000
    
    ' 尝试连接端口
    objTCP.Connect(strComputer, intPort)
    
    ' 检查连接状态
    If objTCP.State = 7 Then
        strPortStatus = "Open"
    Else
        strPortStatus = "Closed"
    End If
    
    ' 输出端口状态
    WScript.Echo "Port " & intPort & ": " & strPortStatus
    
    ' 关闭TCP连接
    objTCP.Close
Next

WScript.Quit(0)

使用方法:
1、创建.vbs文件,将代码粘贴并保存。
2、以管理员身份打开命令提示符。
3、进入文件所在文件夹。
4、执行该代码(注意空格):cscript CheckPorts.vbs <主机名> <账户名称> <账户密码> 
5、如提示无访问权限,需要在目标主机页面进行如下操作:
      Windows+r 输入dcomcnfg.exe打开组件服务
      组件服务--计算机--我的电脑。
      右键“属性”--“com安全”
      访问权限--编辑限制--对“ ANONYMOUS LOGON” 的远程访问选择允许
      启动和激活权限>编辑限制添加 4个允许给用户