Попытка исправить странную локальную проблему с ссылкой с помощью Powershell

Итак, я был здесь с другим вопросом и добился некоторого прогресса в выявлении проблемы. У меня есть сеть, которой не разрешен DHCP, и все наши компьютеры MTR работают в ней статически. периодически они выскакивают вот так после ночной перезагрузки,

      InterfaceAlias       : Ethernet 3
InterfaceIndex       : 21
InterfaceDescription : PANGP Virtual Ethernet Adapter
NetProfile.Name      : Unidentified network
IPv4Address          : 169.254.24.253
                       10.245.2.160
IPv4DefaultGateway   :
DNSServer            : 134.20.248.5
                       134.20.248.21

вы заметите, что локальный адрес ссылки имеет приоритет над заданным статическим, и Wireshark фактически видит исходящий запрос DHCP. Переключение порта, отключение и повторное включение Nic или даже отключение кабеля Ethernet и установка его обратно — все это исправляет, и они возвращаются на свой статический адрес. пока мы отслеживаем проблему, я пытаюсь развернуть сценарий Power Shell, чтобы просто улучшить сетевой адаптер ПК. Это то, что у меня есть, но на данный момент он не совсем работает (супер новичок в Powershell); просто пытаюсь отключить адаптер Wi-Fi.

Пример моей тестовой среды здесь:

      InterfaceAlias       : Ethernet 3
InterfaceIndex       : 21
InterfaceDescription : PANGP Virtual Ethernet Adapter
NetProfile.Name      : Unidentified network
IPv4Address          : 10.245.2.160
IPv4DefaultGateway   :
DNSServer            : 134.20.248.5
                       134.20.248.21

InterfaceAlias       : Wi-Fi
InterfaceIndex       : 19
InterfaceDescription : Intel(R) Wi-Fi 6 AX201 160MHz
NetProfile.Name      : Space Interweb
IPv4Address          : 192.168.1.154
IPv4DefaultGateway   : 192.168.1.1
DNSServer            : 192.168.1.1

InterfaceAlias       : Ethernet 2
InterfaceIndex       : 13
InterfaceDescription : Check Point Virtual Network Adapter For Endpoint VPN Client
NetAdapter.Status    : Disconnected

Код, который я пытаюсь

PS C:\Users\flatbe> if (Get-NetIPConfiguration | ? IPv4Address -match "10"){ Get-NetIPConfiguration | ? interfaceAlias -match "Wi" | Disable-NetAdapter -Confirm:$false }

с тех пор я попробовал

      >> Get-NetIPConfiguration |
>>     ? InterfaceIndex -match "19" |
>>     Restart-NetAdapter

что работает, но это нет

      >> Get-NetIPConfiguration |
>>     ? IPv4Address[] -match "141" |
>>     Restart-NetAdapter

как бы мне это правильно написать?

Я подошел к утверждению If, и это меня больше всего смущает. Похоже, это должно сработать, поскольку оператор выводит true, а код в фигурных скобках работает автономно.

      PS C:\Users\flatbe> #Requires -RunAsAdministrator
>> $IPAddress = (Get-NetIPAddress -AddressFamily IPV4 -InterfaceIndex 21).IPAddress
>> write-output $IPAddress
>> Write-output if($IpAddress -match "169"){
>>  Get-NetIPConfiguration | ? InterfaceAlias -match "wi" | Restart-Netadapter}
169.254.182.44
if
True

 Get-NetIPConfiguration | ? InterfaceAlias -match "wi" | Restart-Netadapter

1 ответ

Итак, этот скрипт помогает временно решить мою проблему. Если кто-нибудь знает, почему может генерироваться локальное назначение ссылки, сообщите мне здесь. Этот сценарий очень помогает.

          $IPAddress = (Get-NetIPAddress -AddressFamily IPV4 -InterfaceAlias Ethernet).IPAddress

 write-output $IPAddress

 if($IpAddress -match "169"){

    try { Get-NetIPConfiguration | Where-Object InterfaceAlias -match "Ethernet" | Restart-Netadapter

       

    }

    catch {

        Write-Output "An Error Occurred"

    }

 }

Я запускаю это при входе в профиль Skype на MTR NUC, я разрешаю его запуск только один раз. таким образом, если мы сможем включить DHCP позже, мы не будем вечно сталкиваться с сетевой картой с октетом 169 снова и снова.

Другие вопросы по тегам