Ви напевно знаєте, що я люблю користуватися 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
А что вы думаете по этому поводу?