PowerShell для автоматического переключения сетевых настроек

    Некоторое время назад у моего провайдера случилась полоса глюков, связанных с перекладкой кабеля. Сейчас все нормально, но тогда пару раз в неделю отрубался инет и работник поддержки каждый раз требовал от меня подключать комп напрямую а не через рутер. Вот для быстрого изменения сетевых настроек я как раз и сделал две маленькие функции to_direct и to_router, которые я и предлагаю вашему вниманию. Они написаны не лучшим образом — так что это просто кусочки кода которые работают и которыe могут вам пригодиться, а не образец того, как писать скрипты.



    function to_direct(){
        $NICs = Get-WMIObject Win32_NetworkAdapterConfiguration | ?{$_.IPEnabled -eq “TRUE”}
        Foreach($NIC in $NICs) {
          $NIC.EnableStatic("64.38.232.180", “255.255.255.0")
          $NIC.SetGateways(”64.38.232.180")
          $DNSServers = “216.7.89.63",”64.38.232.180]"
          $NIC.SetDNSServerSearchOrder($DNSServers)
          $NIC.SetDynamicDNSRegistration(”FALSE”)
        }
    }
    function to_router(){
    
      $NICs = Get-WMIObject Win32_NetworkAdapterConfiguration | ?{$_.IPEnabled -eq “TRUE”}
    	Foreach($NIC in $NICs) {
      		$NIC.EnableStatic("192.168.1.3", “255.255.255.0")
            $NIC.SetGateways(”192.168.1.1")
            $DNSServers = “192.168.1.1",”192.168.1.2"
            $NIC.SetDNSServerSearchOrder($DNSServers)
            $NIC.SetDynamicDNSRegistration(”FALSE”)
        }
    }
    
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 5

      0
      > $NIC.SetGateways(”64.38.232.180.1")
      Что-то точек многовато.
      foreach… in NICs — это, пожалуй перебор. А так — интересно.
        0
        ну это я описался когда заменял реальные айпи другими
        +1
        Спасибо за пример. У меня есть необходимость постоянно менять сетевые настройки. При этом еще и два адаптера: Wi-Fi и обыкновенная сетевуха. Использую для этого прогу NetSetMan, но с вашей подачи реализую все на PowerShell :)
          +1
          Ой как сложно-то… WMI, foreach…
          Чем netsh -f не подошел?
            0
            спасибо.

            Я не искушен в администрировании — про netsh даже не знал, просто когда понадобилось поискал сначала про PowerShell, а так как нашел, то дальше не искал.

          Only users with full accounts can post comments. Log in, please.