powershell

 

Страницы: | 1 |

Surface Book 2 не подключается к WiFi-сети — скрипт для перезапуска адаптера

14 января // Хельги

Симптомы

Ноутбук Surface Book 2 не переподключается автоматически к некоторым беспроводным сетям. Возможно, этой же проблеме подвержены другие ноутбуки и планшеты Surface с беспроводным адаптером Marvell Avastar.

Как это выглядит: я прихожу в офис, включаю ноутбук (он выходит из гибернации), но он не подключается к известной ему беспроводной сети — её при этом или нет в списке сетей, или она есть, но подключиться к сети, если по ней кликнуть, он не может.

Обходной маневр

Открыть Device Manager, найти устройство Marvell AVASTAR Wireless-AC Network Controller, в контекстом меню нажать Disable device, потом Enable device. После этого ноутбук подключится к сети.

PowerShell-скрипт для автоматизации

Чтобы не открывать каждый раз Device Manager, можно сделать PowerShell-скрипт и запускать его в один клик.

Выяснение InstanceId. Сначала потребуется выяснить InstanceId адаптера на ноутбуке. Для этого запускаем PowerShell и вводим команду Get-PnpDevice:

   PS C:\Users\helgi> Get-PnpDevice -FriendlyName "*Marvell*Wireless*" | ft -wrap -autosize friendlyname, instanceid
   
   FriendlyName                                   InstanceId
   ~~~~~~~~~~~~                                   ~~~~~~~~~~
   Marvell AVASTAR Wireless-AC Network Controller PCI\VEN_11AB&DEV_2B38&SUBSYS_045E0009&REV_00\4&32FA7CC7&0&00E0

Точное название адаптера можно посмотреть в Device Manager.

Скрипт. Создаем где-нибудь в удобном месте (например, в C:\scripts) файл Restart-Marvell.ps1:

 #
 # Disable, then enable Marvell AVASTAR Wireless-AC Network Controller
 #
 
 Disable-PnpDevice -InstanceId "PCI\VEN_11AB&DEV_2B38&SUBSYS_045E0009&REV_00\4&32FA7CC7&0&00E0" -confirm:$false
 Write-Host 'Adapter disabled'
 sleep 1
 
 Enable-PnpDevice -InstanceId "PCI\VEN_11AB&DEV_2B38&SUBSYS_045E0009&REV_00\4&32FA7CC7&0&00E0" -confirm:$false
 Write-Host 'Adapter enabled'
 sleep 1
 
 Write-Host -NoNewLine 'Press any key to continue...'
 $null = $Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')

InstanceId в скрипте (PCI\VEN_11AB&DEV_2B38&SUBSYS_045E0009&REV_00\4&32FA7CC7&0&00E0) заменяем на тот, который был получен при помощи команды Get-PnpDevice.

Ярлык для быстрого запуска. Создаем в удобном месте (на Рабочем столе или в папке Quick Launch) ярлык на PowerShell.exe, в поле Target в окне свойств прописываем:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe C:\scripts\Restart-Marvell.ps1

Там же нажимаем Advanced и ставим галку Run as Administrator — без этого не получится остановить и запустить адаптер и будут сыпаться ошибки. То же будет и при простой попытке запустить сам файл скрипта.

Готово. Теперь вместо кликов в Device Manager можно запустить этот ярлык, подтвердить запуск от имени администратора и нажать любую клавишу, когда скрипт отработает.

Редакция от 14 января 2020
Тэги: powershell, surface, советы
Написать комментарий

Страницы: | 1 |