Я могу легко отключить сетевое устройство через что-то вроде:

$wmi = gwmi win32_networkadapter -filter "name LIKE '$target%'"
$wmi.disable()

или в более новых версиях Windows:

get-netadapter -InterfaceDescription "$target*" | Disable-NetAdapter -Confirm:$false

Если отключенное устройство (например, адаптер USB-Ethernet) физически отключено, оно снова будет идентифицировано как отключенное, когда оно снова подключено.

Я могу повторно включить с помощью аналогичного кода, но только если устройство физически подключено.

  • WMI может вернуть адаптер, но метод «enable ()» выдает ошибку "Недопустимые параметры метода".
  • Get-NetAdapter ничего не возвращает, если устройства нет.

Как я могу включить его, когда он физически отсутствует, чтобы он работал, когда он снова подключен? IOW, где хранится "отключенное" состояние устройства и можно ли его программно перевернуть?

Спасибо!

2 ответа2

0

Возможно, вы сможете прослушать WMI InstanceCreationEvent и включить устройство при создании. У меня нет аналогичного устройства, поэтому я не могу проверить это.

function Register-USB2ETH {

    $query = "SELECT * FROM __InstanceCreationEvent " +
         "WITHIN 5 " +
         "WHERE TargetInstance ISA 'Win32_NetworkAdapter' " +
         "AND TargetInstance.Name = $target "

    Register-WmiEvent -Query $query -SourceIdentifier USB2ETH -Action { (Get-WmiObject Win32_NetworkAdapter -filter "Name=$target").Enable() } | Out-Null
}

Удалить с помощью Unregister-Event -SourceIdentifier KingstonPlugin .

0

Причина, по которой он должен быть подключен, заключается в том, что '$target%'

изменения в зависимости от того, что еще связано. Это не статическое значение. Как предлагается в комментариях, лучший способ - это прослушивание и повторное включение на основе изменений с соответствующим значением '$target%' .

Что касается того, где это хранится, это будет в реестре:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}

это одно местоположение, где идентификатор в конце является специфическим для каждого устройства. Тем не мение:

Включение сетевого адаптера путем поиска единственного ключа для запуска в реестре не работает. Выполнив сравнение файлов в экспортированных файлах .reg до и после включения сетевого подключения, вы увидите, что в реестр было внесено много изменений. Таким образом, слушатель является лучшим подходом

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .