Главная

Wednesday, 9 October 2024

Параметри WiFi.

Всім привіт.

Ви напевно знаєте, що я люблю користуватися BGInfo. Впевнений що це дуже корисна утіліта для користувача. На днях я вирішив переписати блок коду щодо отримання параметрів мережі, особливо бездротової: назву SSID, номер каналу, рівень сигналу та швидкість передачі даних.

Перший запит відбувається просто:

Get-NetAdapter -Physical | where Status -eq "Up" | select Name,LinkSpeed

а решту параметрів отримуємо з вихлопу netsh wlan show interfaces. І ось тут є цікавинка - LinkSpeed від першого запиту то значення передачі даних адаптера. Як на мене дивно, бо в серфінгу по Інтернет трафік на отримання даних переважає трафик передачі на порядок. Навіщо тоді мені така LinkSpeed? Тому швидкість передачі та отримання я також беру з netsh.

Ось мій код:

 $a = Get-NetAdapter -Physical | where Status -eq "Up" | select Name,LinkSpeed

if (($a.Name -like "Wi-Fi*") -or ($a.Name -like "Беспроводная*")) {

    # It's a Wi-Fi interface

    $b = (get-netconnectionProfile).Name 

    $if01 = (netsh wlan show interfaces)

    $c = $if01 -Match '^\s+Channel' -Replace '^\s+Channel\s+:\s+',''

    $d = $if01 -Match '^\s+Signal' -Replace '^\s+Signal\s+:\s+',''

    $receiveRate = $if01 -Match '^\s+Receive rate \(Mbps\)' -Replace '^\s+Receive rate \(Mbps\)\s+:\s+', ''

    $receiveRate = "$receiveRate Mbps"

    $transmitRate = $if01 -Match '^\s+Transmit rate \(Mbps\)' -Replace '^\s+Transmit rate \(Mbps\)\s+:\s+', ''

    $transmitRate = "$transmitRate Mbps"


# це якщо бажаєте вивести значення в один рядок

#$a.Name+':' +$b +',Ch:' +$c+',Up:' +$d+ ',In:' +$receiveRate+',Out:' +$transmitRate

    Write-Host $a.Name':'$b

    Write-Host 'Channel:'$c

    Write-Host 'Level:'$d

    Write-Host 'Input:'$receiveRate

    Write-Host 'Output:'$transmitRate

    }

else {

    # It's an Ethernet interface

    $a.Name+': '+$a.LinkSpeed

}

 А так виглядає результат:

Щасти.


No comments:

Post a Comment

А что вы думаете по этому поводу?