Bat-файл для изменения IP-адреса Windows 10

Обновлено: 21.11.2024

Пакетный сценарий для Windows 10, который может изменить IP-адрес, сетевую маску, шлюз, DNS и идентификатор VLAN интерфейса. Вам необходимо выполнить скрипт с правами администратора.

Этот файл содержит двунаправленный текст Unicode, который может быть интерпретирован или скомпилирован не так, как показано ниже. Для просмотра откройте файл в редакторе, который показывает скрытые символы Unicode. Подробнее о двунаправленных символах Юникода

< td >:: set alterDNS=xxxx < tr>
@ echo off
:: Переменные конфигурации
set " ifName = Ethernet 2 "
set ipAddress = 10.88.167.35
set subnetMask = 255.255.255.240
set vlanID = 702
:: set defaultGateway=xxxx
:: set primaryDNS=xxxx
:: Изменение IP-адреса и сетевой маски ::
netsh interface ipv4 set address name = "%ifName%" source=static addr= %ipAddress% mask= %subnetMask%
:: netsh interface ipv4 set dns "%ifName%" static %primaryDNS %
:: netsh interface ipv4 add dns "%ifName%" %alternateDNS% index=2
:: Disable ::
:: netsh interface set interface "%ifName%" DISA BLED
:: Изменить идентификатор VLAN ::
powershell -Command "&"
echo Идентификатор VLAN %ifName% был успешно изменен на %vlanID%
:: Enable ::
:: netsh interface set interface "%ifName%" ENABLED
powershell -command " Start-Sleep -s 5 "
:: pause > null

Вы не можете выполнить это действие в данный момент.

Вы вошли в другую вкладку или окно. Перезагрузите, чтобы обновить сеанс. Вы вышли на другой вкладке или в другом окне. Перезагрузите, чтобы обновить сеанс.

У меня было некоторое время простоя, и я искал более быстрый способ изменить свой статический IP-адрес без необходимости каждый раз переходить к параметру адаптера Ethernet через четыре разных окна панели управления.

Оказывается, это можно сделать из cmd. Команда:

Шлюз можно оставить пустым, если это нежелательно.

Вот простой bat-файл, который я придумал. Вы можете вставить это в блокнот и изменить расширение файла с .txt на .bat, чтобы запустить код:

*Примечание. Замените «Ethernet 2» именем целевого адаптера Ethernet. Имя можно найти в сетевых подключениях.

Еще более быстрый, который будет работать для 99% моих потребностей. Только IP, используется исключительно маска подсети /24 и без шлюза по умолчанию.

Командная строка должна быть запущена от имени администратора, чтобы можно было выполнить команду netsh. Вы можете создать ярлык для bat-файла, затем щелкнуть правой кнопкой мыши ярлык для свойств, нажать кнопку «Дополнительно» на вкладке «Ярлык» и установить флажок «Запускать от имени администратора», чтобы всегда запускать .bat от имени администратора.

Попробуйте приложение Simple IP Config. Он делает это в красивом простом графическом интерфейсе.

Простая конфигурация IP — это здорово!

Я даже поставил его на ноутбук ремонтной бригады на одном объекте, когда мы устанавливали новые устройства Ethernet/IP. Вместо того, чтобы подробно рассказывать, как изменить IP-адрес обычным способом в Windows, я настроил несколько профилей быстрого выбора, названных в честь устройств, которые им нужно было настроить, и написал руководства по их использованию (со скриншотами). Техническим специалистам чертовски просто.

Я использую NetSetManPro. Не требует больших затрат и экономит много времени.

Или просто запустите Adjust от имени администратора:

@ECHO off cls :start ECHO. ECHO 1. Измените внутреннюю сеть WLAN на статический IP-адрес Rizhao ECHO 2. Измените внешнюю сеть WLAN на статический IP-адрес Rizhao ECHO 3. Автоматически получите внешний IP-адрес ECHO 4. Получите автоматически внутренний IP-адрес ECHO 5. Выход set selection= set /p selection= Введите число, чтобы напечатать текст. если не '%choice%'=='' установить selection=%choice:~0,1% если '%choice%'=='1' перейти к con1 если '%choice%'=='2' перейти к con2 если ' %choice%'=='3' goto con3 если '%choice%'=='4' goto autosearch если '%choice%'=='5' goto end ECHO "%choice%" недействителен, попробуйте еще раз ECHO . goto start :con1 ECHO Connecting Connection 1 IP-адрес интерфейса netsh set "Wi-Fi" static 10.1.95.175 255.255.255.0 10.1.95.254 1 IP-адрес интерфейса netsh set dns "Wi-Fi" static 10.1.200.1 goto end

:con2 ECHO Connecting Connection 2 netsh interface ip set address "Wi-Fi 2" static 10.1.95.179 255.255.255.0 10.1.95.254 1 netsh interface ip set dns "Wi-Fi 2" static 10.1.200.1 goto end

:con3 ECHO получение автоматического IP-адреса netsh interface ip set address "Wi-Fi 2" dhcp netsh interface ip set dns "Wi-Fi 2" dhcp ipconfig /renew "Wi-Fi 2" goto end

:автопоиск ECHO получение авто IP netsh interface ip set address "Wi-Fi" dhcp netsh interface ip set dns "Wi-Fi" dhcp ipconfig /renew "Wi-Fi" goto end

Потому что я часто переключаюсь между разными сетями, такими как локальная сеть, внутренняя системная сеть и внешняя сеть (я часто переключаюсь между тремя сетями ADSL только для внешней сети). Метод, который я использовал раньше, заключается в настройке IP-адресов нескольких разных сетевых сегментов на этой машине, а затем переключении маршрутов. Таким образом, разные сегменты сети могут выходить через разные шлюзы, а затем получать доступ к нескольким сетям одновременно. Но таким образом я обнаружил, что часто возникают какие-то проблемы, поэтому я решил использовать самый оригинальный способ их решения, то есть, когда я хочу использовать определенный сегмент сети, я использую только IP-адрес сегмента сети. , поэтому мне нужно постоянно менять IP-адрес. Конечно, такое изменение хлопотно в атрибуте «подключение к сети» windows, но, к счастью, в команде windows «Netsh» предусмотрена функция смены IP под командной строкой. При этом гораздо удобнее сделать его батником из батника.

Ниже приводится подробное объяснение конкретных методов и заказов:

Сначала введите строку командной строки: «Win + R > CMD», введите
Введите Netsh, введите, Netsh> появится
Введите интерфейс еще раз, введите, появится интерфейс Netsh>
Enter IP еще раз, введите, появится IP-адрес интерфейса Netsh >

После входа в пункт настройки IP нам необходимо использовать следующие команды:
Установить адрес — добавляет IP-адрес к указанному интерфейсу.

Сначала просмотрите справку Windows по этой команде:
—————————————————————————
Использование: set address [имя] =
[[source=]dhcp |
[source=] static [addr=]IP-адрес [mask=]IP-маска подсети]
[[gateway=] |none [gwmetric=]integer]

Значение тега
Name — имя интерфейса.
Source — одно из следующих значений:
DHCP: для указанного интерфейса установите DHCP для настройки IP
адреса.
/>Статический: используйте локальную статическую конфигурацию для установки IP
адреса.

Шлюз — одно из следующих значений:
: указанный по умолчанию IP-адрес, который вы установили
Шлюз.
Нет: шлюз по умолчанию не установлен.
Gwmetric — метрика шлюза по умолчанию. Если для шлюза установлено значение «нет», то
это поле не должно быть установлено.
Следующие параметры устанавливаются только тогда, когда «источник» является «статическим»:

Addr — указывает IP-адрес интерфейса.
Mask — указывает маску подсети для IP-адреса.

Примечание: используется для изменения режима конфигурации IP-адреса с режима DHCP на статический или со статического
Режим изменен на DHCP. Добавьте на интерфейс IP-адрес со статическим IP-адресом или добавьте
шлюз по умолчанию.
Пример:

set address name=”Local Area Connection” source=dhcp
set address local static 10.0.0.9 255.0.0.0 10.0.0.1 1
————————————— —————————————

Узнав об использовании, мы можем настроить его:
Введите после IP-адреса интерфейса Netsh >
Установите адрес «локального подключения» статический 192.168.4.23 255.255.255.192 192.168.4.1 1 1
Затем введите, и «ОК» будет отображаться позже. Настройка IP-адреса завершена.
Здесь мы объясним, что «локальное подключение» относится к имени подключения, отображаемому в «сетевых свойствах» Windows. Статический означает указать статический IP вместо DHCP. Последние три — IP, маска подсети и шлюз. Последняя «1» относится к метрике шлюза по умолчанию, которая обычно равна «1».

На этом настройка IP в командной строке завершена.
В то же время вы также можете изменить настройки DNS в командной строке, используя команду set DNS. Вы можете ввести заданный DNS /? Чтобы узнать, как его использовать.

Наконец, мы сохраняем эти команды в виде bat-файла (setip192168423.bat):

@echo off
REM eth // eth — это имя сетевой карты, которое можно запросить в сетевом соединении, например «local link»
Set eth = «local link»< br />REM IP // IP — это IP-адрес, который вы хотите изменить
set ip=192.168.4.23
REM GW /// GW — адрес шлюза
set gw=192.168.4.1
/>REM netmask // маска подсети — это маска подсети
set netmasks=255.255.255.192

Echo изменяет локальный IP-адрес на:% IP%
rem
if %gw%==none netsh interface ip set address %eth% static %ip% %netmasks% %gw% > nul
если нет %gw%==none netsh interface ip set address %eth% static %ip% %netmasks% %gw% 1 > nul
echo…………………….
Эхо проверить текущий локальный IP:
ipconfig
echo…………………….
Эхо успешно изменило локальный IP на %IP%!
пауза
закрыть

Мне нужно изменить несколько IP-адресов с dhcp на статический с помощью пакетного сценария в объекте групповой политики. Мне интересно, была ли у кого-нибудь такая потребность, потому что все, что я нашел, было наоборот.

Нужно ли использовать массив или список? как управлять несколькими входами, чтобы избежать дублирования записей?

Заранее спасибо.

Ответы

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

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

Следующий веб-сайт для получения более подробной информации о вариантах профессиональной поддержки и способах подачи сообщений об инцидентах для справки:


Определенно достижимо, если мы изменим IP-адреса с помощью команды вручную.


С уважением,
Дейзи Чжоу

Все ответы

Следующая команда может помочь:

netsh interface ipv4 set address name="Interface Name" static IPAddress Subnet Gateway

netsh interface ipv4 set address name="Ethernet" x.x.x.x y.y.y.y z.z.z.z

  • Предложено в качестве ответа Хамидом Садехпуром Салехом, MVP, 8 июля 2019 г., 6:29

это последний этап, и это здорово.

Могу ли я использовать список для обновления используемых записей в пакетном файле объекта групповой политики? Я имею в виду, могу ли я обновлять пакетный файл при каждом запуске? У меня есть несколько компьютеров для адресации нескольких подсетей.

Настройка пакетного файла вручную при каждом запуске и обновление массивов может занять много времени. Почему бы не использовать powershell Invoke-Command для выполнения команды на машинах, где это необходимо?

было бы здорово, но, к сожалению, нам приходится автоматизировать процесс для нескольких записей. Может быть, я что-то пропустил в Invoke-Command?

Нам уже приходится использовать объект групповой политики и пакетный файл в соответствии с запросом клиента.

Спасибо за помощь.

Есть ли у этого вопроса какие-либо обновления или проблема решена? Кроме того, на вопрос, можем ли мы оказать какую-либо другую помощь?

поскольку DHCP-сервер фактически предоставляет IP-адрес, мы планируем использовать сценарий Powershell в GPO, что-то вроде этого:

$ip=(ipconfig | findstr IPv4 | %< $_.Split(':')[1]; >|%< $_.Split(' ')[1]; >)
netsh интерфейс ipv4 set address name="Wi-Fi" static $ip subnet gw 1

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

Здравствуйте,
Не могли бы вы подробно описать, "мы сейчас задаемся вопросом, можем ли мы изменить с помощью того же скрипта пул DHCP на сервере DHCP, все в той же среде выполнения "?


С уважением,
Дейзи Чжоу

простите меня за мой английский.

Я имею в виду, что можно запустить в том же скрипте и в том же gpo очистку IP-адреса, только что установленного в пуле dhcp, чтобы избежать дублирования записей?

Например, если мы установим IP-адрес клиента как статический, а DHCP-сервер будет использовать тот же IP-адрес для назначения его другому клиенту, это будет дублированный IP-адрес в сети, следовательно, мы пытаемся понять если мы можем избежать такой ситуации, управляя dhcp-сервером в том же gpo-скрипте с помощью Set-DhcpServerv4Scope.

Читайте также: