Назад | Перейти на главную страницу

Как мне изменить свойство RoamingPreferredBandType беспроводных сетевых адаптеров моих пользователей?

Мы наблюдаем периодические проблемы с подключением пользователей к Wi-Fi. Похоже, что это может быть связано с помехами, и рекомендуемым решением является изменение RoamingPreferredBandType на 5 ГГц.

За эта тема, это можно сделать, изменив для параметра реестра RoamingPreferredBandType значение 2. Некоторый код (для обоих bat и powershell были включены в эту ветку; но они, похоже, сканируют большую часть реестра, находя и обновляя все свойства с этим значением. Хотя маловероятно, что у других записей будет свойство с таким именем, мне не нравится код, который работает на предположениях; и этот подход не слишком эффективен. Есть ли лучший способ сделать это, ориентируясь только на те записи, которые имеют значение?

Это измененная версия сценария в ветке форума Intel (ссылка на которую приведена в вопросе), которая использует несколько преимуществ для улучшения своего сценария:

  • GUID {4D36E972-E325-11CE-BFC1-08002BE10318} всегда будет тот, под которым будут находиться сетевые адаптеры, что поможет нам сузить путь к реестру: https://technet.microsoft.com/en-us/library/jj130901.aspx
  • Мы можем получить идентификатор устройства / индекс сетевого адаптера из класса WMI Win32_NetworkAdapter, что в сочетании с вышеизложенным дает нам полный путь к разделу реестра нашего адаптера.

.

Get-WmiObject -Class Win32_NetworkAdapter | ?{$_.Name -like '*Wireless*'} | %{("HKLM:\SYSTEM\CurrentControlSet\Control\Class\{{4D36E972-E325-11CE-BFC1-08002BE10318}}\{0:0000}" -f ([int]$_.Index))} | %{ 
    if(get-itemproperty -Path $_ -Name 'RoamingPreferredBandType' -ErrorAction SilentlyContinue) {
        Set-ItemProperty -Path $_ -Name 'RoamingPreferredBandType' -Value 2    
    } else {
        New-ItemProperty -Path $_ -Name 'RoamingPreferredBandType' -PropertyType String -Value 2
    }
}

т.е.

  • получить список всех сетевых адаптеров
  • фильтр для беспроводных
  • используйте идентификатор устройства / индекс каждого беспроводного адаптера, чтобы получить полный путь к реестру для этого устройства / этих устройств
  • для каждого найденного устройства проверьте, существует ли свойство RoamingPreferenceBandType:
    • Если да, установите значение 2 (если его не существует, он будет создан).
    • Если нет, создайте новый со значением 2 (этот сценарий маловероятен, но лучше его учитывать).