我有一个脚本,可以显示一些信息 IP、登录名和 Mac 地址,但它会显示所有 mac 地址,甚至蓝牙设备。如何修改此脚本以仅列出以太网有线接口的 mac 地址,并显示其名称?
Dim WMI, Configs, Config, Adapters, Adapter
Dim Nics, Nic, StrIP, CompName
Dim intCount, strMAC, strQuery, objWMIService, colItems, objItem, i
Dim WshNetwork, strUserName
intCount = 0
strMAC = ""
' We're interested in MAC addresses of physical adapters only
strQuery = "SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID > ''"
Set objWMIService = GetObject( "winmgmts://./root/CIMV2" )
Set colItems = objWMIService.ExecQuery( strQuery, "WQL", 48 )
For Each objItem In colItems
If InStr( strMAC, objItem.MACAddress ) = 0 Then
strMAC = strMAC & ", " & objItem.MACAddress
intCount = intCount + 1
End If
Next
' Remove leading comma
If intCount > 0 Then strMAC = Mid( strMAC, 2 )
Set Nics = GetObject("winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
For Each Nic in Nics
if Nic.IPEnabled then
StrIP = Nic.IPAddress(i)
Set WshNetwork = WScript.CreateObject("WScript.Network")
CompName = WshNetwork.Computername
Set WMI = GetObject("winmgmts:{impersonationlevel=impersonate}root/cimv2")
strUserName = wshNetwork.UserName
' BEGIN CALLOUT A
Set Configs = WMI.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled=True")
' END CALLOUT A
For Each Config In Configs
' BEGIN CALLOUT B
Set Adapters = WMI.AssociatorsOf("Win32_NetworkAdapterConfiguration.Index=" & Config.Index, "Win32_NetworkAdapterSetting")
' END CALLOUT B
'For Each Adapter In Adapters
'If Left(Adapter.Description, 14) = "Cisco AnyConnect VPN Virtual Miniport Adapter for Windows" Then
'VPNIP = Config.IPAddress(0)
'End If
Next
'Next
MsgBox "IP Adres: "&StrIP & vbNewLine _
& "Computer Name: "&CompName & vbNewLine _
& "Login: "&strUserName & vbNewLine _
& "Mac Adres: "& strMAC _
,4160,"Information IP"
'wscript.quit
end if
next
答案1
该脚本存在几个问题,但是为了排除 BT 设备,您可以更改此设置:
For Each objItem In colItems
If InStr( strMAC, objItem.MACAddress ) = 0 Then
strMAC = strMAC & ", " & objItem.MACAddress
intCount = intCount + 1
End If
Next
对此:
For Each objItem In colItems
If (InStr( strMAC, objItem.MACAddress ) = 0) And (Left(objItem.PNPDeviceID, 4) <> "BTH\") Then
strMAC = strMAC & ", " & objItem.MACAddress
intCount = intCount + 1
End If
Next
蓝牙设备具有以“BTH \”开头的 PNPDeviceID,因此将其排除在选择之外。