PowerShell: проверяем уровень сигнала Wi-Fi для всех доступных сетей в Windows

Уровень сигнала Wi-Fi влияет на качество вашего интернет подключения. В Windows вы можете определить текущее значение уровня сигнала Wi-Fi подключения несколькими способами. Я попробовал разобраться, как с помощью PowerShell определить текущий уровень сигнала Wi-Fi; вывести уведомление, если качество сигнала упало; и вывести список всех доступных беспроводных сетей с их техническими параметрами.

Обычный пользователь Windows 10 может оценить уровень сигнала Wi-Fi для текущего подключения по иконке беспроводной сети в таскбаре. Щелкните по иконке и перед вами появится список доступных Wi-Fi сетей.

У каждой Wi-Fi сети есть иконка с полосками. Чем больше полосок, тем лучше уровень сигнала точки доступа. Три полоски говорят о том, что уровень качества сигнала находится в диапазоне от 75 до 100%. Если у подключения две полоски, значит качество приема сигнала Wi-Fi между 50 и 75%, и т.д.

Вы можете получить более точное значение качества сигнала из командой строки. Все параметры текущего беспроводного подключения можно вывести с помощью команды:

netsh wlan show interfaces

На скриншоте выделен уровень сигнала подключения к Wi-Fi точке доступа (Signal: 72%).

С помощью PowerShell можно получить только значение уровня сигнала в процентах:

(netsh wlan show interfaces) -Match '^s+Signal' -Replace '^s+Signals+:s+',''

С помощью простого PowerShell скрипта можно вывести всплывающее уведомление пользователю , если уровень Wi-Fi сигнала стал менее 30%.

$cur_strength=(netsh wlan show interfaces) -Match '^s+Signal' -Replace '^s+Signals+:s+','' | Out-String
If ($cur_strength.replace('%','') –le 30)
{
Add-Type -AssemblyName System.Windows.Forms
$global:balmsg = New-Object System.Windows.Forms.NotifyIcon
$path = (Get-Process -id $pid).Path
$balmsg.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Warning
$balmsg.BalloonTipText = “Уровень Wi-Fi сигнала менее $cur_strength Вернитесь к точке доступа!”
$balmsg.BalloonTipTitle = "Внимание $Env:USERNAME"
$balmsg.Visible = $true
$balmsg.ShowBalloonTip(10000)
}

Такой PowerShell цикл можно запустить в бесконечном цикле и проверять состояние сигнала раз в 10 секунд, или сделать из него службу Windows , чтобы она уведомляла вас об плохом Wi-Fi подключении.

Также с помощью netsh вы можете вывести список всех доступных беспроводных сетей в зоне действия вашего беспроводного адаптера (а не только список сохраненных wi-fi сетей ). Для этого используется команда:

netsh wlan show network mode=bssid

Следующий PowerShell скрипт сканирует все доступные Wi-Fi сети (в том числе точки доступа на Windows ), выводит их имена, уровень сигнала, каналы (полезно для поиска свободных каналов), и стандарты (802.11n, 802.11ac, 802.11g и т.д.), на которых они работают.

$logs=@()
$date=Get-Date
$cmd=netsh wlan show networks mode=bssid
$n=$cmd.Count
For($i=0;$i -lt $n;$i++)
{
If($cmd[$i] -Match '^SSID[^:]+:.(.*)$')
{
$ssid=$Matches[1]
$i++
$bool=$cmd[$i] -Match 'Type[^:]+:.(.+)$'
$Type=$Matches[1]
$i++
$bool=$cmd[$i] -Match 'Authentication[^:]+:.(.+)$'
$authent=$Matches[1]
$i++
$bool=$cmd[$i] -Match 'Cipher[^:]+:.(.+)$'
$chiffrement=$Matches[1]
$i++
While($cmd[$i] -Match 'BSSID[^:]+:.(.+)$')
{
$bssid=$Matches[1]
$i++
$bool=$cmd[$i] -Match 'Signal[^:]+:.(.+)$'
$signal=$Matches[1]
$i++
$bool=$cmd[$i] -Match 'Type[^:]+:.(.+)$'
$radio=$Matches[1]
$i++
$bool=$cmd[$i] -Match 'Channel[^:]+:.(.+)$'
$Channel=$Matches[1]
$i=$i+2
$logs+=[PSCustomObject]@{date=$date;ssid=$ssid;Authentication=$authent;Cipher=$chiffrement;bssid=$bssid;signal=$signal;radio=$radio;Channel=$Channel}
}
}
}
$cmd=$null
$logs|Out-GridView -Title 'Scan Wifi Script'

Перед вами должна появится вот такая таблица Out-GridView с информацией о параметрах всех доступных беспроводных сетях.

На это скриншоте видно, что в моем окружении популярен 13 канал, поэтому мне не стоит запускать свою точку доступа на этом канале.

Скрипт можно использовать для определения того , видит ли ваш адаптер 5 ГГц wi-fi сети .
admin

Share
Published by
admin

Recent Posts

Что такое Zulip

Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…

2 месяца ago

Что такое Zookeeper

Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…

2 месяца ago

Что такое Zimbra

Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…

2 месяца ago

Что такое Zabbix

Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…

2 месяца ago

Что такое YouTube

YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…

2 месяца ago

Что такое yota

Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…

2 месяца ago