LEANBACK_11/bginfo/scripts/networkspeed.vbs

60 lines
1.8 KiB
Text

'=============================================================================
' Network Speed Info Script for BGInfo
'=============================================================================
' Description: Shows network adapter speed(s):
' - If MAC file exists: shows speed for that specific adapter
' - If no MAC file or empty: shows speeds for all active adapters
'=============================================================================
On Error Resume Next
' Connect to WMI and FSO
Set wmi = GetObject("winmgmts:\\.\root\cimv2")
Set fso = CreateObject("Scripting.FileSystemObject")
' Try to read MAC address from file
macAddress = ""
If fso.FileExists("mac") Then
Set file = fso.OpenTextFile("mac", 1, False)
If Not file.AtEndOfStream Then
macAddress = Trim(file.ReadLine())
End If
file.Close
End If
' Build WMI query based on whether we have a MAC address
If macAddress <> "" Then
' Get speed for specific MAC
query = "SELECT Speed FROM Win32_NetworkAdapter WHERE MACAddress='" & macAddress & "' AND NetEnabled=True"
Else
' Get speed from all active adapters
query = "SELECT Speed FROM Win32_NetworkAdapter WHERE NetEnabled=True"
End If
' Execute query
Set adapters = wmi.ExecQuery(query)
' Format and output speeds
For Each adapter In adapters
If Not IsNull(adapter.Speed) Then
speed = CLng(adapter.Speed)
' Convert to appropriate units
If speed >= 1000000000 Then
' Convert to Gb/s
speedText = Round(speed/1000000000, 1) & " Gb/s"
ElseIf speed >= 1000000 Then
' Convert to Mb/s
speedText = Round(speed/1000000, 0) & " Mb/s"
Else
' Show in Kb/s
speedText = Round(speed/1000, 0) & " Kb/s"
End If
Echo speedText
End If
Next
' Clean up
Set wmi = Nothing
Set fso = Nothing