Меню

Windows 7 скрипт для настройки сети

Настройка сети с помощью PowerShell (IP адрес, DNS, шлюз, маршруты)

В этой статье мы рассмотрим особенности настройки параметров сетевых адаптеров в Windows из PowerShell. Посмотрим, как узнать и назначить статический IP адрес, DNS сервера, или настроить сетевой интерфейс на получение конфигурации IP от DHCP сервера. Вы можете использовать эти командлеты для настройки сети в Сore/Nano версиях Windows Server, в Hyper-V Server, изменения настроек IP на удаленных компьютерах или по сети серверах или в PS скриптах.

Ранее для настройки параметров сети в Windows из CLI использовалась команда netsh interface ipv4. В PowerShell 3.0 и выше для управления сетевыми настройками Windows можно использовать встроенный PowerShell модуль NetTCPIP.

Чтобы получить список командлетов в этом модуле, выполните:

Управление сетевыми адаптерами из PowerShell

Выведем список доступных сетевых интерфейсов компьютера:

Командлет возвращает имя интерфейса, состояние (Up/Down), MAC адрес, скорость на порту.

В этом примере у меня на компьютере несколько сетевых адаптеров (кроме физического подключения Ethernet0 есть несколько сетевых интерфейсов от Hyper-V и VMWare Player).

Вы можете обращаться к сетевым интерфейсам по их именам или индексам (столбец ifIndex). В нашем примере, чтобы выбрать физический LAN адаптер Intel 82574L нужно набрать команду:

Можно изменить имя адаптера:

Чтобы выключить сетевой интерфейс, используйте команды:

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

Если для адаптера указан VLAN, можно вывести его так:

Get-NetAdapter | ft Name, Status, Linkspeed, VlanID

Информация об используемом драйвере сетевого адаптера:

Get-NetAdapter | ft Name, DriverName, DriverVersion, DriverInformation, DriverFileName

Информация о физических сетевых адаптерах (PCI слот, шина и т.д.).

Просмотр настроек TCP/IP сетевого интерфейса из PowerShell

Получить текущие настройки сетевого интерфейса (IP адрес, DNS, шлюз):

Чтобы вывести более подробную информацию о конфигурации сетевого интерфейса, используйте команду:

В этом случае выводится назначенный профиль сети интерфейса (NetProfile.NetworkCategory), настройки MTU (NetIPv4Interface.NlMTU), включено ли получение адреса от DHCP (NetIPv4Interface.DHCP) и ряд другой полезной информации.

Получить значение только IP адрес интерфейса:

Настроить статический IP адрес из PowerShell

Попробуем задать статический IP адрес для сетевого интерфейса. Чтобы изменить IP адрес, маску подсети и шлюз для сетевого интерфейса:

Можно задать IP адрес, представив его в виде более массива (более наглядно):

$ipParams = @<
InterfaceIndex = 8
IPAddress = «192.168.1.22»
PrefixLength = 24
AddressFamily = «IPv4»
>
New-NetIPAddress @ipParams

Если статический IP адрес уже настроен и нужно изменить его, используется командлет Set-NetIPAddress:

Чтобы на интерфейсе отключить получение IP адреса от DHCP, выполните:

Set-DnsClientServerAddress: настроить адреса DNS серверов

Чтобы задать адреса первичного и вторичного DNS серверов в Windows, используется командлет Set-DNSClientServerAddress. Например:

Set-DNSClientServerAddress –InterfaceIndex 8 –ServerAddresses 192.168.1.11,10.1.1.11

Можно также задать DNS сервера через массив:

$dnsParams = @<
InterfaceIndex = 8
ServerAddresses = («8.8.8.8″,»8.8.4.4»)
>
Set-DnsClientServerAddress @dnsParams

После изменения настроек DNS, можно очистить DNS кэш:

PowerShell: Настройка получения IP адреса от DHCP сервера

Чтобы сетевой интерфейс компьютера получал динамический IP адрес от DHCP сервера, выполните команду:

Читайте также:  Настройка денежного ящика атол драйвер

Очистите настройки DNS серверов:

И перезапустите интерфейс для получения IP адреса:

Если ранее у вас был настроен шлюз, удалите его:

Удаленное изменение IP/DNS настроек в Windows

Вы можете использовать PowerShell чтобы удаленно изменить настройки IP адресов или DNS серверов на нескольких удаленных компьютерах. Допустим, ваша задача – изменить настройки DNS для всех серверов в указанном контейнере AD. Для получения списка компьютеров в скрипте ниже примере используется командлет Get-ADComputer, а удаленное подключение к компьютерам выполняется через WinRM (командлет Invoke-Command):

Источник

Изменяем сетевые параметры Windows с помощью netsh+batch

Года полтора назад была у меня такая рутинная работа: приходя на работу – вводить IP-адрес, маску, шлюз, DNS для Ethernet-порта ноутбука, а приходя домой – менять все эти параметры на другие. Первое время я мирился, но длилось это недолго – ну как можно каждый день делать одно и то же!? Тогда и вышел я на след Windows-утилиты netsh, которая, вкупе с batch-файлом дала возможность делать то же самое, но гораздо (!) быстрее и удобнее (используя стандартные средства Windows и всего один текстовый файл).

Здесь утилита netsh уже была немного описана, но я предлагаю другую реализацию, возможности которой будут более гибкими.

Netsh

Итак, поигравшись с netsh на Windows 7 (для Windows XP синтаксис немного меняется) я обнаружил, что можно присвоить интерфейсу (в приведенном ниже примере — интерфейсу под названием «LAN») IP-адрес, маску и шлюз с помощью команды:

Команды, понятное дело, вводятся в командной строке Windows. Если параметры отказываются изменяться — запускаем cmd от имени администратора.

Если понадобится добавить еще один IP-адрес, то используем:

Две следующие команды очищают список DNS-серверов и выставляют IP-адрес 212.154.163.162 первым в списке DNS-серверов:

Чтобы предоставить возможность назначения сетевых параметров DHCP-серверу используем:

Ну и для отображения текущих параметров можно использовать:

Batch-файлы

На этом закончим наше знакомство с netsh и перейдем к batch-файлами Windows (текстовый файл с расширением «bat»), который позволяет не только автоматизировать ввод длинных команд (в том числе и netsh-комманд), но также поможет сделать этот процесс более интересным, интерактивным и не заставит нас использовать для каждого варианта настроек отдельный файл.

Для вывода на экран используется команда «ECHO» (она будет использоваться для вывода своеобразного меню):

Для вывода сообщения и запроса ввода от пользователя используем «SET»:

Для условного перехода к метке воспользуемся связкой «IF» и «GOTO» (если кто знает, можно ли использовать Case — буду рад упростить итоговый скрипт):

Для обозначения метки (в нашем случае метки «one») используется двоеточие:

Итого

На этом можно закончить и торжественно сообщить, что Вы знаете все, что нужно для того, чтобы полностью разобраться в итоговом batch-файле (есть комментарии на русском языке) и переделать его под себя. Вот ссылка на страничку гугл-проекта QNet (сделал по аналогии с Yet Another Net Switcher — спасибо автору, раньше этим не пользовался). Ах да, комментарии в batch-файлах начинаются с «rem».

Читайте также:  Dgs 1210 настройка мануал

P.S. Теперь ни на работе, ни дома этим скриптом почти не пользуюсь (есть DHCP), но в командировках — по-прежнему очень удобная вещь.

P.P.S. С русскоязычным названием «Подключение по локальной сети» скрипт может и не сработать, но я давно привык именовать сетевые карты как «LAN» и «WLAN».

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

Источник

Как написать скрипт Windows для изменения настроек сети на лету

На этой неделе я наткнулся на интересную проблему. Во многих офисах или рабочих средах может потребоваться переопределить параметры сети для подключения к различным сетям. Например, некоторые люди берут свои ноутбуки с собой и имеют статический IP-адрес, настроенный специально для этого компьютера. Однако, поскольку рабочая сеть обычно является DHCP, для этого требуется, чтобы человек продолжал изменять сетевые настройки между статическим IP или автоматическим DHCP в зависимости от того, где они находятся.

Более распространенная проблема — для инженеров или ИТ-специалистов, которым часто необходимо подключаться к устройствам или компьютерам в небольшой сети внутри здания. Чтобы подключиться к этой изолированной сети, вам нужно изменить настройки сети на статический IP. Позже, когда вы снова подключитесь к корпоративной сети, он снова вернется к DHCP.

Я оказывался в этой ситуации достаточно часто и так устал от просмотра сетевой карты, открытия настроек IP и внесения этих изменений, что я решил, что пришло время собрать сценарий VB, который будет делать все это в одном или два клика. Если вы следовали моим статьям по программированию, то знаете, что я люблю сценарии VB. Я однажды использовал его, чтобы создать одержимый компьютер

, а также используется для автоматизации Microsoft SyncToy

для резервного копирования данных.

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

Создание сценария изменения настроек сети

Есть три основных задачи, которые вам нужно выполнить с помощью скрипта, чтобы создать это маленькое приложение для переключения настроек сети. Первый — использовать скрипт для создания статических настроек IP. Следующее — придумать скрипт для включения DHCP. Наконец, последнее — спросить пользователя, какую задачу он хочет выполнить, а затем использовать эту обратную связь для ее выполнения.

VB Script для установки статических настроек IP

Для всех примеров кода, перечисленных в этой статье, обязательно добавьте «» в начале и «в конце», иначе код не запустится.
Вот скрипт статического изменения IP:

Читайте также:  Настройка роутера велком лыткарино

Этот сценарий использует службу Windows WMI в Windows для достижения цели изменения настроек. Вы можете видеть три фиксированные переменные массива, загруженные с IP-адресами, и затем, где скрипт проверяет активную «активированную» сетевую карту. Затем он использует методы «EnableStatic» и «SetGateways» для внесения необходимых изменений. Когда я запускаю сценарий в моей домашней сети (где мне требуется DHCP), вы можете видеть, где сценарий успешно изменил настройки моего адаптера, и я потерял подключение к Интернету.

Доказав, что часть сценария со статическим IP-адресом работает, пришло время написать сценарий, который установит для адаптера DHCP, чтобы он автоматически определял сетевой IP-адрес. Вот сценарий, который вы можете использовать для этого.

Как видите, этот скрипт намного проще. Он также использует WMI, но единственной требуемой функцией является «EnableDHCP». Это выполняется на текущем включенном сетевом адаптере. После сохранения и запуска этого сценария настройки моей карты адаптера изменились на DHCP, и мое интернет-соединение снова заработало.

Итак, теперь, когда у вас есть код для выполнения обоих важных действий, следующей частью этого трюка будет получение информации от пользователя, чтобы точно определить, какой статический IP-адрес ему нужен. Чтобы снова включить DHCP, вы можете потребовать от пользователя ввести слово «АВТО» для автоматического определения IP.
Вот как выглядит этот новый, полный скрипт, включающий два скрипта выше.

Этот скрипт использует функцию InputBox для получения статического IP-адреса или команды «AUTO» от пользователя.

Если в поле введено что-либо кроме «AUTO», это будет использоваться в качестве статической строки IP в разделе кода, который использует WMI для установки статических настроек IP для сетевого адаптера. Также есть проверка на «0», подтверждающая, что все прошло хорошо.

Проверив настройки моей сетевой карты после запуска скрипта, я подтвердил, что скрипт действительно изменил настройки статического IP-адреса.

Теперь протестировать скрипт AUTO. Ввод AUTO удовлетворяет первому условию в проверке оператора «IF» для AUTO. Это запускает альтернативный скрипт, который включает DHCP.

После этого я вошел в настройки адаптера и, конечно же, вернул ему значение «Получить IP-адрес автоматически».

Хотя это может быть достаточно простой задачей, чтобы зайти в настройки вашей сетевой карты и перейти на статический или DHCP, если вам придется делать это очень часто, это может стать настоящей болью. Вы можете сделать это из командной строки, используя «netsh», но опять же, вам нужно запомнить синтаксис команды.

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

Думаешь, ты мог бы попробовать этот скрипт Windows? Любые другие идеи, чтобы настроить его и сделать его еще лучше? Поделитесь своими мыслями и предложениями в разделе комментариев ниже.

Изображение предоставлено: двоичные коды через Shutterstock

Источник

Adblock
detector