В некоторых версиях netsh команда dump с указанием имени файла почему-то не работает. Однако, для сохранения конфигурации можно воспользоваться способом, описанным выше - использовать запись в файл командой set file open C:\mynet.sav.
netsh set file open C:\mynet.sav dump quit
Остается только слегка исправить полученный файл сценария C:\mynet.sav - удалить 1-ю строчку с командой dump и последние - с приглашением netsh и (или) командой quit
Второй способ - использовать netsh с перенаправлением вывода команды dump в файл:
netsh dump > C:\mynet.sav
Для сохранения отдельного контекста конфигурации можно воспользоваться командой dump на соответствующем уровне :
netsh interface dump > C:\myinterf.cnf- сохранить настройки сетевых интерфейсов в виде сценария netsh в файле C:\myinterf.cnf
Для восстановления сетевой конфигурации можно воспользоваться
netsh exec C:\mynet.sav
Обычно, после восстановления сетевых настроек из файла сценария , требуется перезапуск некоторых сетевых служб, а желательнее - выполнить перезагрузку Windows
· Как выполнить переключение между контекстами netsh
Иногда требуется выполнить некоторые команды на одном уровне, перейти на другой, и снова вернуться на предыдущий. Для выполнения таких переходов используются команды pushdи popd. Принцип переключения между контекстами основан на обработке очереди в соответствии с правилом "первым вошел - последним вышел" или first-in-last-out (FILO) stack. Команда pushdзапоминает текущий уровень (контекст) в стеке, а команда popdизвлекает его из стека. Например:
netsh> - приглашение первого уровня команды nesh pushd- введена команда запоминания контекста в стек netsh> - приглашении netsh не меняется, контекст прежний. interface ipv4- переход на уровень interface и уровень ipv4 netsh interface ipv4> - соответственно, изменилась строка приглашения, отображая текущий контекст выполнения команды netsh set address local static 192.168.1.9 255.255.255.0 192.168.1.1 1 - команда, меняющая настройки IP протокола. netsh interface ip> - контекст выполнения команды, отображаемый в приглашении не изменяется. popd- команда извлечения из стека запомненного контекста. netsh > - строка приглашения изменилась, отображая текущий контекст выполнения команды netsh .
Без использования команд pushd и popd практически невозможно полноценное использование сценариев netsh.
· Как найти примеры выполнения сетевых настроек с помощью netsh
Кроме сохранения и восстановления настроек использование команды dump позволяет получить примеры в виде сценария, соответствующего текущей конфигурации. Например, дамп секции interface дает пример выполнения команд netsh в контексте настроек сетевых интерфейсов. Пример сценария :
#======================== # Конфигурация интерфейса #======================== pushd interface reset all popd # Конец конфигурации интерфейса . . .
# ----------------------------------------- # Настройка IP-интерфейсов # ----------------------------------------- pushd interface ip # Интерфейс настройки IP для "Подключение по локальной сети"
set address name=" Подключение по локальной сети " source=static addr=192.168.0.1 mask=255.255.255.0 set dns name="Подключение по локальной сети" source=static addr=192.168.0.2 mask=255.255.255.0 set wins name=" Подключение по локальной сети " source=static addr=192.168.0.9
Строки сценария, начинающиеся с символа #, являются комментариями. Команды pushd и popd позволяют определить контекст исполнения других команд netsh. Команды настроек конфигурации плюс справочная информация самой netsh позволяют довольно легко получить командную строку для выполнения отдельных сетевых настроек:
- Сменить IP-адрес в командной строке:
netsh interface ip set address name="Подключение по локальной сети" source=static addr=192.168.0.58 mask=255.255.255.0
name- имя сетевого подключения source- static - статический IP-адрес. Возможно значение DHCP, если адрес назначается автоматически сервером DHCP. addr - значение IP-адреса mask- значение маски сети.
Для получения сведений о дополнительных возможностях конфигурирования сетевых интерфейсов можно перейти на соответствующий контекст выполнения netsh, и выполнить интересующую команду с параметром ? . Например:
netch - старт NETSH interface - перейти в контекст настройки сетевых интерфейсов interface ip - перейти в контекст настройки протокола IP set file open C:\setaddr.txt- записывать сессию в файл. Эта команда используется, если нужна справочная информация в виде текстового файла . set address ? выдать справку по использованию set address set file close- закрыть файл справки. quit - завершить работу с netsh
Для Windows Vista / Windows 7 синтаксис будет немного отличаться, уровню ipбудет соответствовать уровень ipv4 :
netch - старт NETSH interface - перейти в контекст настройки сетевых интерфейсов interface ipv4 - перейти в контекст настройки протокола IP set file open C:\setaddr.txt- записывать сессию в файл. Эта команда используется, если нужна справочная информация в виде текстового файла . set address ? выдать справку по использованию set address set file close quit - завершить работу с netsh
Пример синтаксиса для смены адреса DNS-сервера в настройках сетевого подключения "Подключение по локальной сети 2" на адрес публичного DNS-сервера Googl в среде Windows 7:
netsh interface ipv4 set dnsservers name="Подключение по локальной сети 2" static 8.8.8.8 primary
Из информации файла справки следует, что возможно использование параметров командной строки netsh без указания ключевых слов:
netsh interface ip set address name="Подключение по локальной сети" source=static addr=192.168.0.58 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1
Аналогично, без указания ключевых слов:
netsh interface ip set address name="Подключение по локальной сети" static 192.168.0.58 255.255.255.0 192.168.0.1 1
При изменении одного из параметров настроек необходимо указывать и остальные. Например, только для изменения адреса шлюза по умолчанию недостаточно выполнить команду
netsh interface ip set address name="Подключение по локальной сети" gateway=192.168.0.1 gwmetric=1
При ее выполнении отсутствующие параметры (IP-адрес и маска) будут сброшены. Для правильной смены шлюза по умолчанию команда должна быть следующей:
netsh interface ip set address name="Подключение по локальной сети" source=static addr=192.168.0.58 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1