|
' VBScript to output MAC Address, IP, Subnet Mask, Speed, and DNS servers for active adapters |
|
|
|
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") |
|
Set colNetworkAdapters = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True") |
|
Dim outputString |
|
Dim firstAdapter |
|
Dim adapterCount |
|
|
|
firstAdapter = True ' Flag to indicate the first adapter |
|
adapterCount = 0 ' Counter for adapters |
|
|
|
' Count the number of active adapters |
|
For Each objAdapter in colNetworkAdapters |
|
adapterCount = adapterCount + 1 |
|
Next |
|
|
|
Dim currentAdapter |
|
currentAdapter = 0 ' Counter to track current adapter during the loop |
|
|
|
For Each objAdapter in colNetworkAdapters |
|
currentAdapter = currentAdapter + 1 ' Increment the current adapter counter |
|
|
|
' Check if it is the first adapter |
|
If firstAdapter Then |
|
outputString = outputString & objAdapter.Description & ":" & vbCrLf |
|
firstAdapter = False ' Set flag to false after first adapter |
|
Else |
|
outputString = outputString & vbTab & objAdapter.Description & ":" & vbCrLf |
|
End If |
|
|
|
' Get MAC Address |
|
If Not IsNull(objAdapter.MACAddress) Then |
|
outputString = outputString & vbTab & " - MAC: " & objAdapter.MACAddress & vbCrLf |
|
Else |
|
outputString = outputString & vbTab & " - MAC: None" & vbCrLf |
|
End If |
|
|
|
' Get IP Address |
|
If Not IsNull(objAdapter.IPAddress) Then |
|
outputString = outputString & vbTab & " - IP: " & objAdapter.IPAddress(0) & vbCrLf |
|
Else |
|
outputString = outputString & vbTab & " - IP: None" & vbCrLf |
|
End If |
|
|
|
' Get Subnet Mask |
|
If Not IsNull(objAdapter.IPSubnet) Then |
|
outputString = outputString & vbTab & " - Subnet: " & objAdapter.IPSubnet(0) & vbCrLf |
|
Else |
|
outputString = outputString & vbTab & " - Subnet: None" & vbCrLf |
|
End If |
|
|
|
' Get Adapter Speed (Convert to Gbps if >= 1000 Mbps) |
|
Set colNetworkAdaptersSpeed = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID IS NOT NULL AND Name = '" & objAdapter.Description & "'") |
|
For Each objAdapterSpeed in colNetworkAdaptersSpeed |
|
If Not IsNull(objAdapterSpeed.Speed) Then |
|
Dim adapterSpeedMbps |
|
adapterSpeedMbps = CDbl(objAdapterSpeed.Speed) / 1000000 ' Convert from bps to Mbps |
|
If adapterSpeedMbps >= 1000 Then |
|
outputString = outputString & vbTab & " - Speed: " & Round(adapterSpeedMbps / 1000, 2) & " Gbps" & vbCrLf |
|
Else |
|
outputString = outputString & vbTab & " - Speed: " & adapterSpeedMbps & " Mbps" & vbCrLf |
|
End If |
|
Else |
|
outputString = outputString & vbTab & " - Speed: Unknown" & vbCrLf |
|
End If |
|
Next |
|
|
|
' Get DNS Servers |
|
If Not IsNull(objAdapter.DNSServerSearchOrder) Then |
|
outputString = outputString & vbTab & " - DNS: " |
|
For i = 0 To UBound(objAdapter.DNSServerSearchOrder) |
|
outputString = outputString & objAdapter.DNSServerSearchOrder(i) |
|
If i < UBound(objAdapter.DNSServerSearchOrder) Then |
|
outputString = outputString & ", " |
|
End If |
|
Next |
|
outputString = outputString & vbCrLf |
|
Else |
|
outputString = outputString & vbTab & " - DNS: None" & vbCrLf |
|
End If |
|
|
|
' Only add a blank line if this is not the last adapter |
|
If currentAdapter < adapterCount Then |
|
outputString = outputString & vbCrLf |
|
End If |
|
Next |
|
|
|
' Output the final result |
|
Echo outputString |